| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # 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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 """Returns PackageSpec corresponding to given repo.""" | 74 """Returns PackageSpec corresponding to given repo.""" |
| 75 config_file = os.path.join(repo['root'], 'infra', 'config', 'recipes.cfg') | 75 config_file = os.path.join(repo['root'], 'infra', 'config', 'recipes.cfg') |
| 76 return package.PackageSpec.load_proto(package.ProtoFile(config_file)) | 76 return package.PackageSpec.load_proto(package.ProtoFile(config_file)) |
| 77 | 77 |
| 78 def create_repo(self, name, spec): | 78 def create_repo(self, name, spec): |
| 79 """Creates a real git repo with simple recipes.cfg.""" | 79 """Creates a real git repo with simple recipes.cfg.""" |
| 80 repo_dir = os.path.join(self._root_dir, name) | 80 repo_dir = os.path.join(self._root_dir, name) |
| 81 os.mkdir(repo_dir) | 81 os.mkdir(repo_dir) |
| 82 with in_directory(repo_dir): | 82 with in_directory(repo_dir): |
| 83 subprocess.check_output(['git', 'init']) | 83 subprocess.check_output(['git', 'init']) |
| 84 subprocess.check_output(['git', 'remote', 'add', 'origin', repo_dir]) |
| 84 with open('recipes.py', 'w') as f: | 85 with open('recipes.py', 'w') as f: |
| 85 f.write('import subprocess, sys\n' | 86 f.write('import subprocess, sys\n' |
| 86 'sys.exit(subprocess.call(\n' | 87 'sys.exit(subprocess.call(\n' |
| 87 ' [sys.executable, %r, "--package", %r] + sys.argv[1:]))' % ( | 88 ' [sys.executable, %r, "--package", %r] + sys.argv[1:]))' % ( |
| 88 self._recipe_tool, | 89 self._recipe_tool, |
| 89 os.path.join(repo_dir, 'infra', 'config', 'recipes.cfg'))) | 90 os.path.join(repo_dir, 'infra', 'config', 'recipes.cfg'))) |
| 90 subprocess.check_output(['git', 'add', 'recipes.py']) | 91 subprocess.check_output(['git', 'add', 'recipes.py']) |
| 91 rev = self.update_recipes_cfg(name, spec) | 92 rev = self.update_recipes_cfg(name, spec) |
| 92 return { | 93 return { |
| 93 'name': name, | 94 'name': name, |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 message = ' '.join( | 262 message = ' '.join( |
| 262 ['update %r recipe_module: ' % name] + | 263 ['update %r recipe_module: ' % name] + |
| 263 ['%s(%s)' % t for t in methods.iteritems()] | 264 ['%s(%s)' % t for t in methods.iteritems()] |
| 264 ) | 265 ) |
| 265 return self.commit_in_repo(repo, message) | 266 return self.commit_in_repo(repo, message) |
| 266 | 267 |
| 267 def reset_repo(self, repo, revision): | 268 def reset_repo(self, repo, revision): |
| 268 """Resets repo contents to given revision.""" | 269 """Resets repo contents to given revision.""" |
| 269 with in_directory(repo['root']): | 270 with in_directory(repo['root']): |
| 270 subprocess.check_output(['git', 'reset', '--hard', revision]) | 271 subprocess.check_output(['git', 'reset', '--hard', revision]) |
| OLD | NEW |