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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 def repo_setup(self, repo_deps): | 113 def repo_setup(self, repo_deps): |
114 """Creates a set of repos with recipes.cfg reflecting requested | 114 """Creates a set of repos with recipes.cfg reflecting requested |
115 dependencies. | 115 dependencies. |
116 | 116 |
117 In order to avoid a topsort, we require that repo names are in | 117 In order to avoid a topsort, we require that repo names are in |
118 alphebetical dependency order -- i.e. later names depend on earlier | 118 alphebetical dependency order -- i.e. later names depend on earlier |
119 ones. | 119 ones. |
120 """ | 120 """ |
121 repos = {} | 121 repos = {} |
122 for k in sorted(repo_deps): | 122 for k in sorted(repo_deps): |
123 deps=[package_pb2.DepSpec( | 123 deps = { |
124 project_id='recipe_engine', | 124 'recipe_engine': package_pb2.DepSpec(url="file://"+ROOT_DIR), |
125 url="file://"+ROOT_DIR, | 125 } |
126 )] + [ | 126 for d in repo_deps[k]: |
127 package_pb2.DepSpec( | 127 deps[d] = package_pb2.DepSpec( |
128 project_id=d, | |
129 url=repos[d]['root'], | 128 url=repos[d]['root'], |
130 branch='master', | 129 branch='master', |
131 revision=repos[d]['revision'], | 130 revision=repos[d]['revision'], |
132 ) | 131 ) |
133 for d in repo_deps[k] | |
134 ] | |
135 | 132 |
136 repos[k] = self.create_repo(k, package_pb2.Package( | 133 repos[k] = self.create_repo(k, package_pb2.Package( |
137 api_version=1, | 134 api_version=1, |
138 project_id=k, | 135 project_id=k, |
139 recipes_path='', | 136 recipes_path='', |
140 deps=deps, | 137 deps=deps, |
141 )) | 138 )) |
142 return repos | 139 return repos |
143 | 140 |
144 def updated_package_spec_pb(self, repo, dep_name, dep_revision): | 141 def updated_package_spec_pb(self, repo, dep_name, dep_revision): |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 message = ' '.join( | 315 message = ' '.join( |
319 ['update %r recipe_module: ' % name] + | 316 ['update %r recipe_module: ' % name] + |
320 ['%s(%s)' % t for t in methods.iteritems()] | 317 ['%s(%s)' % t for t in methods.iteritems()] |
321 ) | 318 ) |
322 return self.commit_in_repo(repo, message) | 319 return self.commit_in_repo(repo, message) |
323 | 320 |
324 def reset_repo(self, repo, revision): | 321 def reset_repo(self, repo, revision): |
325 """Resets repo contents to given revision.""" | 322 """Resets repo contents to given revision.""" |
326 with in_directory(repo['root']): | 323 with in_directory(repo['root']): |
327 subprocess.check_output(['git', 'reset', '--hard', revision]) | 324 subprocess.check_output(['git', 'reset', '--hard', revision]) |
OLD | NEW |