OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Integration tests for project.py.""" | 6 """Integration tests for project.py.""" |
7 | 7 |
8 import logging | 8 import logging |
9 import os | 9 import os |
10 import random | 10 import random |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 root_dir = os.path.join(os.getcwd(), 'root_dir') | 118 root_dir = os.path.join(os.getcwd(), 'root_dir') |
119 chromium_status_pwd = os.path.join(root_dir, '.chromium_status_pwd') | 119 chromium_status_pwd = os.path.join(root_dir, '.chromium_status_pwd') |
120 skia_status_pwd = os.path.join(root_dir, '.skia_status_pwd') | 120 skia_status_pwd = os.path.join(root_dir, '.skia_status_pwd') |
121 mapping = { | 121 mapping = { |
122 'blink': { | 122 'blink': { |
123 'lines': [ | 123 'lines': [ |
124 chromium_status_pwd, 'chromium-status password', ['foo'], | 124 chromium_status_pwd, 'chromium-status password', ['foo'], |
125 ], | 125 ], |
126 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], | 126 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], |
127 'verifiers': ['try job rietveld', 'tree status'], | 127 'verifiers': ['try job rietveld', 'tree status'], |
| 128 'pre_patch_revert_verifiers': [], |
| 129 'revert_verifiers': [] |
128 }, | 130 }, |
129 'chromium': { | 131 'chromium': { |
130 'lines': [ | 132 'lines': [ |
131 chromium_status_pwd, 'chromium-status password', ['foo'], | 133 chromium_status_pwd, 'chromium-status password', ['foo'], |
132 ], | 134 ], |
133 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], | 135 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], |
134 'verifiers': ['try job rietveld', 'tree status'], | 136 'verifiers': ['try job rietveld', 'tree status'], |
| 137 'pre_patch_revert_verifiers': [], |
| 138 'revert_verifiers': [] |
135 }, | 139 }, |
136 'chromium_deps': { | 140 'chromium_deps': { |
137 'lines': [ | 141 'lines': [ |
138 chromium_status_pwd, 'chromium-status password', ['foo'], | 142 chromium_status_pwd, 'chromium-status password', ['foo'], |
139 ], | 143 ], |
140 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], | 144 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], |
141 'verifiers': ['presubmit'], | 145 'verifiers': ['presubmit'], |
| 146 'pre_patch_revert_verifiers': [], |
| 147 'revert_verifiers': [] |
142 }, | 148 }, |
143 'gyp': { | 149 'gyp': { |
144 'lines': [ | 150 'lines': [ |
145 chromium_status_pwd, 'chromium-status password', ['foo'], | 151 chromium_status_pwd, 'chromium-status password', ['foo'], |
146 ], | 152 ], |
147 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], | 153 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], |
148 'verifiers': ['tree status'], | 154 'verifiers': ['tree status'], |
| 155 'pre_patch_revert_verifiers': [], |
| 156 'revert_verifiers': [] |
149 }, | 157 }, |
150 'nacl': { | 158 'nacl': { |
151 'lines': [ | 159 'lines': [ |
152 chromium_status_pwd, 'chromium-status password', ['foo'], | 160 chromium_status_pwd, 'chromium-status password', ['foo'], |
153 ], | 161 ], |
154 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], | 162 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], |
155 'verifiers': ['presubmit', 'tree status'], | 163 'verifiers': ['presubmit', 'tree status'], |
| 164 'pre_patch_revert_verifiers': [], |
| 165 'revert_verifiers': [] |
156 }, | 166 }, |
157 'skia': { | 167 'skia': { |
158 'lines': [ | 168 'lines': [ |
159 skia_status_pwd, 'skia-status password', ['foo'], | 169 skia_status_pwd, 'skia-status password', ['foo'], |
160 ], | 170 ], |
161 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], | 171 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], |
162 'verifiers': ['presubmit', 'tree status'], | 172 'verifiers': ['presubmit', 'tree status'], |
| 173 'pre_patch_revert_verifiers': ['project_bases', 'committer_revert'], |
| 174 'revert_verifiers': [] |
163 }, | 175 }, |
164 'tools': { | 176 'tools': { |
165 'lines': [ | 177 'lines': [ |
166 chromium_status_pwd, 'chromium-status password', ['foo'], | 178 chromium_status_pwd, 'chromium-status password', ['foo'], |
167 ], | 179 ], |
168 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], | 180 'pre_patch_verifiers': ['project_bases', 'reviewer_lgtm'], |
169 'verifiers': ['presubmit'], | 181 'verifiers': ['presubmit'], |
| 182 'pre_patch_revert_verifiers': [], |
| 183 'revert_verifiers': [] |
170 }, | 184 }, |
171 } | 185 } |
172 for project in sorted(projects.supported_projects()): | 186 for project in sorted(projects.supported_projects()): |
173 logging.debug(project) | 187 logging.debug(project) |
174 self.assertEqual([], self.read_lines) | 188 self.assertEqual([], self.read_lines) |
175 expected = mapping.pop(project) | 189 expected = mapping.pop(project) |
176 self.read_lines = [expected['lines']] | 190 self.read_lines = [expected['lines']] |
177 p = projects.load_project( | 191 p = projects.load_project( |
178 project, 'user', root_dir, self.context.rietveld, True) | 192 project, 'user', root_dir, self.context.rietveld, True) |
179 self.assertEqual( | 193 self.assertEqual( |
180 expected['pre_patch_verifiers'], | 194 expected['pre_patch_verifiers'], |
181 [x.name for x in p.pre_patch_verifiers], | 195 [x.name for x in p.pre_patch_verifiers], |
182 (expected['pre_patch_verifiers'], | 196 (expected['pre_patch_verifiers'], |
183 [x.name for x in p.pre_patch_verifiers], | 197 [x.name for x in p.pre_patch_verifiers], |
184 project)) | 198 project)) |
185 self.assertEqual( | 199 self.assertEqual( |
186 expected['verifiers'], [x.name for x in p.verifiers], | 200 expected['verifiers'], [x.name for x in p.verifiers], |
187 (expected['verifiers'], | 201 (expected['verifiers'], |
188 [x.name for x in p.verifiers], | 202 [x.name for x in p.verifiers], |
189 project)) | 203 project)) |
| 204 self.assertEqual( |
| 205 expected['pre_patch_revert_verifiers'], |
| 206 [x.name for x in p.pre_patch_revert_verifiers], |
| 207 (expected['pre_patch_revert_verifiers'], |
| 208 [x.name for x in p.pre_patch_revert_verifiers], |
| 209 project)) |
| 210 self.assertEqual( |
| 211 expected['revert_verifiers'], [x.name for x in p.revert_verifiers], |
| 212 (expected['revert_verifiers'], |
| 213 [x.name for x in p.revert_verifiers], |
| 214 project)) |
190 if project == 'tools': | 215 if project == 'tools': |
191 # Add special checks for it. | 216 # Add special checks for it. |
192 project_bases_verifier = p.pre_patch_verifiers[0] | 217 project_bases_verifier = p.pre_patch_verifiers[0] |
193 branch = '\\@[a-zA-Z0-9\\-_\\.]+$' | 218 branch = '\\@[a-zA-Z0-9\\-_\\.]+$' |
194 self.assertEqual( | 219 self.assertEqual( |
195 [ | 220 [ |
196 # svn | 221 # svn |
197 '^svn\\:\\/\\/svn\\.chromium\\.org\\/chrome/trunk/tools(|/.*)$', | 222 '^svn\\:\\/\\/svn\\.chromium\\.org\\/chrome/trunk/tools(|/.*)$', |
198 '^svn\\:\\/\\/chrome\\-svn\\/chrome/trunk/tools(|/.*)$', | 223 '^svn\\:\\/\\/chrome\\-svn\\/chrome/trunk/tools(|/.*)$', |
199 '^svn\\:\\/\\/chrome\\-svn\\.corp\\/chrome/trunk/tools(|/.*)$', | 224 '^svn\\:\\/\\/chrome\\-svn\\.corp\\/chrome/trunk/tools(|/.*)$', |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 self.context.rietveld.check_calls([ | 507 self.context.rietveld.check_calls([ |
483 _try_comment(pc), | 508 _try_comment(pc), |
484 "trigger_try_jobs(31337, 1, 'CQ', False, 'HEAD', " | 509 "trigger_try_jobs(31337, 1, 'CQ', False, 'HEAD', " |
485 "{u'chromium_presubmit': ['presubmit']})", | 510 "{u'chromium_presubmit': ['presubmit']})", |
486 'close_issue(31337)', | 511 'close_issue(31337)', |
487 "update_description(31337, u'foo\\nTBR=')", | 512 "update_description(31337, u'foo\\nTBR=')", |
488 "add_comment(31337, 'Change committed as 125')", | 513 "add_comment(31337, 'Change committed as 125')", |
489 ]) | 514 ]) |
490 self.context.checkout.check_calls([ | 515 self.context.checkout.check_calls([ |
491 'prepare(None)', | 516 'prepare(None)', |
492 'apply_patch(%r)' % self.context.rietveld.patchsets[0], | 517 'apply_patch(%r, revert=False)' % self.context.rietveld.patchsets[0], |
493 'prepare(None)', | 518 'prepare(None)', |
494 'apply_patch(%r)' % self.context.rietveld.patchsets[1], | 519 'apply_patch(%r, revert=False)' % self.context.rietveld.patchsets[1], |
495 "commit(u'foo\\nTBR=\\n\\nReview URL: http://nowhere/31337', " | 520 "commit(u'foo\\nTBR=\\n\\nReview URL: http://nowhere/31337', " |
496 "u'user@example.com')", | 521 "u'user@example.com')", |
497 ]) | 522 ]) |
498 self.context.status.check_names(['initial', 'why not', 'why not', | 523 self.context.status.check_names(['initial', 'why not', 'why not', |
499 'why not', 'commit']) | 524 'why not', 'commit']) |
500 | 525 |
501 | 526 |
502 | 527 |
503 if __name__ == '__main__': | 528 if __name__ == '__main__': |
504 logging.basicConfig( | 529 logging.basicConfig( |
505 level=logging.DEBUG if '-v' in sys.argv else logging.WARNING, | 530 level=logging.DEBUG if '-v' in sys.argv else logging.WARNING, |
506 format='%(levelname)5s %(module)15s(%(lineno)3d): %(message)s') | 531 format='%(levelname)5s %(module)15s(%(lineno)3d): %(message)s') |
507 unittest.main() | 532 unittest.main() |
OLD | NEW |