OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 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 | 6 |
7 import datetime | 7 import datetime |
8 import unittest | 8 import unittest |
9 | 9 |
10 import auto_roll | 10 import auto_roll |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 return self._contents | 108 return self._contents |
109 | 109 |
110 def setUp(self): | 110 def setUp(self): |
111 SuperMoxTestBase.setUp(self) | 111 SuperMoxTestBase.setUp(self) |
112 self.mox.StubOutWithMock(auto_roll.rietveld.Rietveld, 'add_comment') | 112 self.mox.StubOutWithMock(auto_roll.rietveld.Rietveld, 'add_comment') |
113 self.mox.StubOutWithMock(auto_roll.rietveld.Rietveld, 'close_issue') | 113 self.mox.StubOutWithMock(auto_roll.rietveld.Rietveld, 'close_issue') |
114 self.mox.StubOutWithMock(auto_roll.rietveld.Rietveld, | 114 self.mox.StubOutWithMock(auto_roll.rietveld.Rietveld, |
115 'get_issue_properties') | 115 'get_issue_properties') |
116 self.mox.StubOutWithMock(auto_roll.rietveld.Rietveld, 'search') | 116 self.mox.StubOutWithMock(auto_roll.rietveld.Rietveld, 'search') |
117 self.mox.StubOutWithMock(auto_roll.scm.GIT, 'Capture') | 117 self.mox.StubOutWithMock(auto_roll.scm.GIT, 'Capture') |
| 118 self.mox.StubOutWithMock(auto_roll.subprocess2, 'call') |
118 self.mox.StubOutWithMock(auto_roll.subprocess2, 'check_call') | 119 self.mox.StubOutWithMock(auto_roll.subprocess2, 'check_call') |
119 self.mox.StubOutWithMock(auto_roll.subprocess2, 'check_output') | 120 self.mox.StubOutWithMock(auto_roll.subprocess2, 'check_output') |
120 self.mox.StubOutWithMock(auto_roll.urllib2, 'urlopen') | 121 self.mox.StubOutWithMock(auto_roll.urllib2, 'urlopen') |
121 auto_roll.datetime.datetime = self.MockDateTime | 122 auto_roll.datetime.datetime = self.MockDateTime |
122 auto_roll.rietveld.upload.HttpRpcServer = self.MockHttpRpcServer | 123 auto_roll.rietveld.upload.HttpRpcServer = self.MockHttpRpcServer |
123 self._arb = auto_roll.AutoRoller(self.TEST_PROJECT, | 124 self._arb = auto_roll.AutoRoller(self.TEST_PROJECT, |
124 self.TEST_AUTHOR, | 125 self.TEST_AUTHOR, |
125 self.PATH_TO_CHROME) | 126 self.PATH_TO_CHROME) |
126 | 127 |
127 def _make_issue(self, old_rev=None, new_rev=None, created_datetime=None): | 128 def _make_issue(self, old_rev=None, new_rev=None, created_datetime=None): |
(...skipping 24 matching lines...) Expand all Loading... |
152 else: | 153 else: |
153 auto_roll.subprocess2.check_output( | 154 auto_roll.subprocess2.check_output( |
154 ['git', '--git-dir', './third_party/test_project/.git', 'show', '-s', | 155 ['git', '--git-dir', './third_party/test_project/.git', 'show', '-s', |
155 'origin/master']).AndReturn(self.GIT_LOG_UPDATED) | 156 'origin/master']).AndReturn(self.GIT_LOG_UPDATED) |
156 | 157 |
157 def _upload_issue(self, custom_message=None): | 158 def _upload_issue(self, custom_message=None): |
158 self._get_last_revision() | 159 self._get_last_revision() |
159 self._get_current_revision() | 160 self._get_current_revision() |
160 self._compare_revs(self.OLD_REV, self.NEW_REV) | 161 self._compare_revs(self.OLD_REV, self.NEW_REV) |
161 | 162 |
| 163 auto_roll.subprocess2.check_call(['git', 'clean', '-d', '-f']) |
| 164 auto_roll.subprocess2.call(['git', 'rebase', '--abort']) |
| 165 auto_roll.subprocess2.call(['git', 'branch', '-D', 'test_project_roll']) |
| 166 auto_roll.subprocess2.check_call(['git', 'checkout', 'master', '-f']) |
| 167 auto_roll.subprocess2.check_call(['git', 'checkout', |
| 168 '-b', 'test_project_roll', |
| 169 '-t', 'origin/master', '-f']) |
| 170 |
162 from_rev = self._display_rev(self.OLD_REV) | 171 from_rev = self._display_rev(self.OLD_REV) |
163 to_rev = self._display_rev(self.NEW_REV) | 172 to_rev = self._display_rev(self.NEW_REV) |
| 173 message = custom_message or 'Test_Project roll %s:%s' % (from_rev, to_rev) |
| 174 message += '\nTBR=' |
| 175 auto_roll.subprocess2.check_call( |
| 176 ['roll-dep', 'third_party/%s' % self.TEST_PROJECT, str(self.NEW_REV)]) |
164 | 177 |
165 message = custom_message or 'Test_Project roll %s:%s' % (from_rev, to_rev) | 178 auto_roll.subprocess2.check_call(['git', 'add', 'DEPS']) |
| 179 auto_roll.subprocess2.check_call(['git', 'commit', '-m', message]) |
| 180 auto_roll.subprocess2.check_call(['git', 'cl', 'upload', '--bypass-hooks', |
| 181 '--use-commit-queue']) |
| 182 auto_roll.subprocess2.check_call(['git', 'checkout', 'master', '-f']) |
| 183 auto_roll.subprocess2.check_call(['git', 'branch', '-D', |
| 184 'test_project_roll']) |
166 | 185 |
167 auto_roll.subprocess2.check_call( | |
168 ['./tools/safely-roll-deps.py', self.TEST_PROJECT, str(self.NEW_REV), | |
169 '--message', message, '--force']) | |
170 issue = self._make_issue(created_datetime=self.CURRENT_DATETIME_STR) | 186 issue = self._make_issue(created_datetime=self.CURRENT_DATETIME_STR) |
171 self._arb._rietveld.search(owner=self.TEST_AUTHOR, | 187 self._arb._rietveld.search(owner=self.TEST_AUTHOR, |
172 closed=2).AndReturn([issue]) | 188 closed=2).AndReturn([issue]) |
173 self._arb._rietveld.add_comment(issue['issue'], | 189 self._arb._rietveld.add_comment(issue['issue'], |
174 self._arb.ROLL_BOT_INSTRUCTIONS) | 190 self._arb.ROLL_BOT_INSTRUCTIONS) |
175 | 191 |
176 def test_should_stop(self): | 192 def test_should_stop(self): |
177 if self.__class__.__name__ == 'AutoRollTestBase': | 193 if self.__class__.__name__ == 'AutoRollTestBase': |
178 return | 194 return |
179 issue = self._make_issue(created_datetime=self.OLD_ISSUE_CREATED_STR) | 195 issue = self._make_issue(created_datetime=self.OLD_ISSUE_CREATED_STR) |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 | 347 |
332 | 348 |
333 class AutoRollTestSVN(AutoRollTestBase): | 349 class AutoRollTestSVN(AutoRollTestBase): |
334 | 350 |
335 OLDER_REV = 1231 | 351 OLDER_REV = 1231 |
336 OLD_REV = 1234 | 352 OLD_REV = 1234 |
337 NEW_REV = 1235 | 353 NEW_REV = 1235 |
338 | 354 |
339 DEPS_CONTENT = ''' | 355 DEPS_CONTENT = ''' |
340 vars = { | 356 vars = { |
341 "test_project_revision": "%d", | 357 'test_project_revision': '%d', |
342 } | 358 } |
343 ''' % OLD_REV | 359 ''' % OLD_REV |
344 | 360 |
345 _GIT_LOG = ''' | 361 _GIT_LOG = ''' |
346 commit abcde | 362 commit abcde |
347 Author: Test Author <test_author@example.com> | 363 Author: Test Author <test_author@example.com> |
348 Date: Wed Apr 2 14:00:14 2014 -0400 | 364 Date: Wed Apr 2 14:00:14 2014 -0400 |
349 | 365 |
350 Make some changes. | 366 Make some changes. |
351 | 367 |
(...skipping 25 matching lines...) Expand all Loading... |
377 | 393 |
378 | 394 |
379 class AutoRollTestGit(AutoRollTestBase): | 395 class AutoRollTestGit(AutoRollTestBase): |
380 | 396 |
381 OLDER_REV = 'cfcf604fbdcf6e2d9b982a2fab3fc9f1e3f8cd65' | 397 OLDER_REV = 'cfcf604fbdcf6e2d9b982a2fab3fc9f1e3f8cd65' |
382 OLD_REV = 'b9af6489f6f2004ad11b82c6057f7007e3c35372' | 398 OLD_REV = 'b9af6489f6f2004ad11b82c6057f7007e3c35372' |
383 NEW_REV = '79539998e04afab3ee9c3016881755ca52f60a73' | 399 NEW_REV = '79539998e04afab3ee9c3016881755ca52f60a73' |
384 | 400 |
385 DEPS_CONTENT = ''' | 401 DEPS_CONTENT = ''' |
386 vars = { | 402 vars = { |
387 "test_project_revision": "%s", | 403 'test_project_revision': '%s', |
388 } | 404 } |
389 ''' % OLD_REV | 405 ''' % OLD_REV |
390 | 406 |
391 _GIT_LOG = ''' | 407 _GIT_LOG = ''' |
392 commit %s | 408 commit %s |
393 Author: Test Author <test_author@example.com> | 409 Author: Test Author <test_author@example.com> |
394 Date: Wed Apr 2 14:00:14 2014 -0400 | 410 Date: Wed Apr 2 14:00:14 2014 -0400 |
395 | 411 |
396 Make some changes. | 412 Make some changes. |
397 ''' | 413 ''' |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 | 455 |
440 # pylint: disable=R0201 | 456 # pylint: disable=R0201 |
441 def _parse_origin_master(self, returnval): | 457 def _parse_origin_master(self, returnval): |
442 auto_roll.subprocess2.check_output( | 458 auto_roll.subprocess2.check_output( |
443 ['git', '--git-dir', './third_party/test_project/.git', 'rev-parse', | 459 ['git', '--git-dir', './third_party/test_project/.git', 'rev-parse', |
444 'origin/master']).AndReturn(returnval) | 460 'origin/master']).AndReturn(returnval) |
445 | 461 |
446 | 462 |
447 if __name__ == '__main__': | 463 if __name__ == '__main__': |
448 unittest.main() | 464 unittest.main() |
OLD | NEW |