| OLD | NEW |
| 1 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium OS 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 """Test framework for code that interacts with gerrit. | 5 """Test framework for code that interacts with gerrit. |
| 6 | 6 |
| 7 class GerritTestCase | 7 class GerritTestCase |
| 8 -------------------------------------------------------------------------------- | 8 -------------------------------------------------------------------------------- |
| 9 This class initializes and runs an a gerrit instance on localhost. To use the | 9 This class initializes and runs an a gerrit instance on localhost. To use the |
| 10 framework, define a class that extends GerritTestCase, and then do standard | 10 framework, define a class that extends GerritTestCase, and then do standard |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 http_port=http_port, | 148 http_port=http_port, |
| 149 netrc_file=os.path.join(gerrit_dir, 'tmp', '.netrc'), | 149 netrc_file=os.path.join(gerrit_dir, 'tmp', '.netrc'), |
| 150 ssh_ident=os.path.join(gerrit_dir, 'tmp', 'id_rsa'), | 150 ssh_ident=os.path.join(gerrit_dir, 'tmp', 'id_rsa'), |
| 151 ssh_port=ssh_port,) | 151 ssh_port=ssh_port,) |
| 152 | 152 |
| 153 @classmethod | 153 @classmethod |
| 154 def setUpClass(cls): | 154 def setUpClass(cls): |
| 155 """Sets up the gerrit instances in a class-specific temp dir.""" | 155 """Sets up the gerrit instances in a class-specific temp dir.""" |
| 156 # Create gerrit instance. | 156 # Create gerrit instance. |
| 157 gerrit_dir = tempfile.mkdtemp() | 157 gerrit_dir = tempfile.mkdtemp() |
| 158 os.chmod(gerrit_dir, 0o0700) | 158 os.chmod(gerrit_dir, 0o700) |
| 159 gi = cls.gerrit_instance = cls._create_gerrit_instance(gerrit_dir) | 159 gi = cls.gerrit_instance = cls._create_gerrit_instance(gerrit_dir) |
| 160 | 160 |
| 161 # Set netrc file for http authentication. | 161 # Set netrc file for http authentication. |
| 162 cls.gerrit_util_netrc_orig = gerrit_util.NETRC | 162 cls.gerrit_util_netrc_orig = gerrit_util.NETRC |
| 163 gerrit_util.NETRC = netrc.netrc(gi.netrc_file) | 163 gerrit_util.NETRC = netrc.netrc(gi.netrc_file) |
| 164 | 164 |
| 165 # gerrit_util.py defaults to using https, but for testing, it's much | 165 # gerrit_util.py defaults to using https, but for testing, it's much |
| 166 # simpler to use http connections. | 166 # simpler to use http connections. |
| 167 cls.gerrit_util_protocol_orig = gerrit_util.GERRIT_PROTOCOL | 167 cls.gerrit_util_protocol_orig = gerrit_util.GERRIT_PROTOCOL |
| 168 gerrit_util.GERRIT_PROTOCOL = 'http' | 168 gerrit_util.GERRIT_PROTOCOL = 'http' |
| (...skipping 12 matching lines...) Expand all Loading... |
| 181 'access.refs/meta/config.read', 'group Anonymous Users']) | 181 'access.refs/meta/config.read', 'group Anonymous Users']) |
| 182 cls.check_call(['git', 'add', project_config], cwd=clone_path) | 182 cls.check_call(['git', 'add', project_config], cwd=clone_path) |
| 183 cls.check_call( | 183 cls.check_call( |
| 184 ['git', 'commit', '-m', 'Anonyous read for refs/meta/config'], | 184 ['git', 'commit', '-m', 'Anonyous read for refs/meta/config'], |
| 185 cwd=clone_path) | 185 cwd=clone_path) |
| 186 cls.check_call(['git', 'push', 'origin', 'HEAD:refs/meta/config'], | 186 cls.check_call(['git', 'push', 'origin', 'HEAD:refs/meta/config'], |
| 187 cwd=clone_path) | 187 cwd=clone_path) |
| 188 | 188 |
| 189 def setUp(self): | 189 def setUp(self): |
| 190 self.tempdir = tempfile.mkdtemp() | 190 self.tempdir = tempfile.mkdtemp() |
| 191 os.chmod(self.tempdir, 0o0700) | 191 os.chmod(self.tempdir, 0o700) |
| 192 | 192 |
| 193 def tearDown(self): | 193 def tearDown(self): |
| 194 if TEARDOWN: | 194 if TEARDOWN: |
| 195 shutil.rmtree(self.tempdir) | 195 shutil.rmtree(self.tempdir) |
| 196 | 196 |
| 197 @classmethod | 197 @classmethod |
| 198 def createProject(cls, name, description='Test project', owners=None, | 198 def createProject(cls, name, description='Test project', owners=None, |
| 199 submit_type='CHERRY_PICK'): | 199 submit_type='CHERRY_PICK'): |
| 200 """Create a project on the test gerrit server.""" | 200 """Create a project on the test gerrit server.""" |
| 201 if owners is None: | 201 if owners is None: |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 ['git', 'config', 'remote.%s.review' % remote], | 469 ['git', 'config', 'remote.%s.review' % remote], |
| 470 cwd=clone_path).strip() | 470 cwd=clone_path).strip() |
| 471 assert(review_host) | 471 assert(review_host) |
| 472 projectname = self.check_output( | 472 projectname = self.check_output( |
| 473 ['git', 'config', 'remote.%s.projectname' % remote], | 473 ['git', 'config', 'remote.%s.projectname' % remote], |
| 474 cwd=clone_path).strip() | 474 cwd=clone_path).strip() |
| 475 assert(projectname) | 475 assert(projectname) |
| 476 GerritTestCase._UploadChange( | 476 GerritTestCase._UploadChange( |
| 477 clone_path, branch=branch, remote='%s://%s/%s' % ( | 477 clone_path, branch=branch, remote='%s://%s/%s' % ( |
| 478 gerrit_util.GERRIT_PROTOCOL, review_host, projectname)) | 478 gerrit_util.GERRIT_PROTOCOL, review_host, projectname)) |
| OLD | NEW |