| OLD | NEW |
| 1 # Copyright 2016 The LUCI Authors. All rights reserved. | 1 # Copyright 2016 The LUCI Authors. All rights reserved. |
| 2 # Use of this source code is governed under the Apache License, Version 2.0 | 2 # Use of this source code is governed under the Apache License, Version 2.0 |
| 3 # that can be found in the LICENSE file. | 3 # that can be found in the LICENSE file. |
| 4 | 4 |
| 5 """Utilities for testing with real repos (e.g. git).""" | 5 """Utilities for testing with real repos (e.g. git).""" |
| 6 | 6 |
| 7 | 7 |
| 8 import contextlib | 8 import contextlib |
| 9 import os | 9 import os |
| 10 import shutil | 10 import shutil |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 def repo_setup(self, repo_deps): | 106 def repo_setup(self, repo_deps): |
| 107 """Creates a set of repos with recipes.cfg reflecting requested | 107 """Creates a set of repos with recipes.cfg reflecting requested |
| 108 dependencies. | 108 dependencies. |
| 109 | 109 |
| 110 In order to avoid a topsort, we require that repo names are in | 110 In order to avoid a topsort, we require that repo names are in |
| 111 alphebetical dependency order -- i.e. later names depend on earlier | 111 alphebetical dependency order -- i.e. later names depend on earlier |
| 112 ones. | 112 ones. |
| 113 """ | 113 """ |
| 114 repos = {} | 114 repos = {} |
| 115 for k in sorted(repo_deps): | 115 for k in sorted(repo_deps): |
| 116 deps=[package_pb2.DepSpec( |
| 117 project_id='recipe_engine', |
| 118 url="file://"+ROOT_DIR, |
| 119 )] + [ |
| 120 package_pb2.DepSpec( |
| 121 project_id=d, |
| 122 url=repos[d]['root'], |
| 123 branch='master', |
| 124 revision=repos[d]['revision'], |
| 125 ) |
| 126 for d in repo_deps[k] |
| 127 ] |
| 128 |
| 116 repos[k] = self.create_repo(k, package_pb2.Package( | 129 repos[k] = self.create_repo(k, package_pb2.Package( |
| 117 api_version=1, | 130 api_version=1, |
| 118 project_id=k, | 131 project_id=k, |
| 119 recipes_path='', | 132 recipes_path='', |
| 120 deps=[ | 133 deps=deps, |
| 121 package_pb2.DepSpec( | |
| 122 project_id=d, | |
| 123 url=repos[d]['root'], | |
| 124 branch='master', | |
| 125 revision=repos[d]['revision'], | |
| 126 ) | |
| 127 for d in repo_deps[k] | |
| 128 ], | |
| 129 )) | 134 )) |
| 130 return repos | 135 return repos |
| 131 | 136 |
| 132 def updated_package_spec_pb(self, repo, dep_name, dep_revision): | 137 def updated_package_spec_pb(self, repo, dep_name, dep_revision): |
| 133 """Returns package spec for given repo, with specified revision | 138 """Returns package spec for given repo, with specified revision |
| 134 for given dependency. | 139 for given dependency. |
| 135 """ | 140 """ |
| 136 spec = self.get_package_spec(repo) | 141 spec = self.get_package_spec(repo) |
| 137 spec.deps[dep_name].revision = dep_revision | 142 spec.deps[dep_name].revision = dep_revision |
| 138 return spec.dump() | 143 return spec.dump() |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 message = ' '.join( | 293 message = ' '.join( |
| 289 ['update %r recipe_module: ' % name] + | 294 ['update %r recipe_module: ' % name] + |
| 290 ['%s(%s)' % t for t in methods.iteritems()] | 295 ['%s(%s)' % t for t in methods.iteritems()] |
| 291 ) | 296 ) |
| 292 return self.commit_in_repo(repo, message) | 297 return self.commit_in_repo(repo, message) |
| 293 | 298 |
| 294 def reset_repo(self, repo, revision): | 299 def reset_repo(self, repo, revision): |
| 295 """Resets repo contents to given revision.""" | 300 """Resets repo contents to given revision.""" |
| 296 with in_directory(repo['root']): | 301 with in_directory(repo['root']): |
| 297 subprocess.check_output(['git', 'reset', '--hard', revision]) | 302 subprocess.check_output(['git', 'reset', '--hard', revision]) |
| OLD | NEW |