Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: tools/push-to-trunk/test_scripts.py

Issue 91733003: Add retry feature for push-to-trunk script. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed review comments. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/push-to-trunk/push_to_trunk.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2013 the V8 project authors. All rights reserved. 2 # Copyright 2013 the V8 project authors. All rights reserved.
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following 10 # copyright notice, this list of conditions and the following
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 # Compare expected and actual arguments. 209 # Compare expected and actual arguments.
210 for (expected_arg, actual_arg) in zip(expected_call, args): 210 for (expected_arg, actual_arg) in zip(expected_call, args):
211 if expected_arg != actual_arg: 211 if expected_arg != actual_arg:
212 raise Exception("Expected: %s - Actual: %s" 212 raise Exception("Expected: %s - Actual: %s"
213 % (expected_arg, actual_arg)) 213 % (expected_arg, actual_arg))
214 214
215 # The expectation list contains a mandatory return value and an optional 215 # The expectation list contains a mandatory return value and an optional
216 # callback for checking the context at the time of the call. 216 # callback for checking the context at the time of the call.
217 if len(expected_call) == len(args) + 2: 217 if len(expected_call) == len(args) + 2:
218 expected_call[len(args) + 1]() 218 expected_call[len(args) + 1]()
219 return expected_call[len(args)] 219 return_value = expected_call[len(args)]
220
221 # If the return value is an exception, raise it instead of returning.
222 if isinstance(return_value, Exception):
223 raise return_value
224 return return_value
220 225
221 def AssertFinished(self): 226 def AssertFinished(self):
222 if self._index < len(self._recipe) -1: 227 if self._index < len(self._recipe) -1:
223 raise Exception("Called %s too seldom: %d vs. %d" 228 raise Exception("Called %s too seldom: %d vs. %d"
224 % (self._name, self._index, len(self._recipe))) 229 % (self._name, self._index, len(self._recipe)))
225 230
226 231
227 class ScriptTest(unittest.TestCase): 232 class ScriptTest(unittest.TestCase):
228 def MakeEmptyTempFile(self): 233 def MakeEmptyTempFile(self):
229 handle, name = tempfile.mkstemp() 234 handle, name = tempfile.mkstemp()
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 267
263 def Command(self, cmd, args="", prefix="", pipe=True): 268 def Command(self, cmd, args="", prefix="", pipe=True):
264 return ScriptTest.MOCKS[cmd](self, cmd, args) 269 return ScriptTest.MOCKS[cmd](self, cmd, args)
265 270
266 def ReadLine(self): 271 def ReadLine(self):
267 return self._rl_mock.Call() 272 return self._rl_mock.Call()
268 273
269 def ReadURL(self, url): 274 def ReadURL(self, url):
270 return self._url_mock.Call(url) 275 return self._url_mock.Call(url)
271 276
277 def Sleep(self, seconds):
278 pass
279
272 def ExpectGit(self, *args): 280 def ExpectGit(self, *args):
273 """Convenience wrapper.""" 281 """Convenience wrapper."""
274 self._git_mock.Expect(*args) 282 self._git_mock.Expect(*args)
275 283
276 def ExpectReadline(self, *args): 284 def ExpectReadline(self, *args):
277 """Convenience wrapper.""" 285 """Convenience wrapper."""
278 self._rl_mock.Expect(*args) 286 self._rl_mock.Expect(*args)
279 287
280 def ExpectReadURL(self, *args): 288 def ExpectReadURL(self, *args):
281 """Convenience wrapper.""" 289 """Convenience wrapper."""
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 def testPushToTrunkForced(self): 675 def testPushToTrunkForced(self):
668 self._PushToTrunk(force=True) 676 self._PushToTrunk(force=True)
669 677
670 def testAutoRoll(self): 678 def testAutoRoll(self):
671 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() 679 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile()
672 680
673 # TODO(machenbach): Get rid of the editor check in automatic mode. 681 # TODO(machenbach): Get rid of the editor check in automatic mode.
674 os.environ["EDITOR"] = "vi" 682 os.environ["EDITOR"] = "vi"
675 683
676 self.ExpectReadURL([ 684 self.ExpectReadURL([
685 ["https://v8-status.appspot.com/lkgr", Exception("Network problem")],
677 ["https://v8-status.appspot.com/lkgr", "100"], 686 ["https://v8-status.appspot.com/lkgr", "100"],
678 ]) 687 ])
679 688
680 self.ExpectGit([ 689 self.ExpectGit([
681 ["status -s -uno", ""], 690 ["status -s -uno", ""],
682 ["status -s -b -uno", "## some_branch\n"], 691 ["status -s -b -uno", "## some_branch\n"],
683 ["svn fetch", ""], 692 ["svn fetch", ""],
684 ["svn log -1 --oneline", "r101 | Text"], 693 ["svn log -1 --oneline", "r101 | Text"],
685 ]) 694 ])
686 695
(...skipping 25 matching lines...) Expand all
712 721
713 Review URL: https://codereview.chromium.org/83173002 722 Review URL: https://codereview.chromium.org/83173002
714 723
715 ------------------------------------------------------------------------""") 724 ------------------------------------------------------------------------""")
716 self.assertEquals( 725 self.assertEquals(
717 """Prepare push to trunk. Now working on version 3.23.11. 726 """Prepare push to trunk. Now working on version 3.23.11.
718 727
719 R=danno@chromium.org 728 R=danno@chromium.org
720 729
721 Committed: https://code.google.com/p/v8/source/detail?r=17997""", body) 730 Committed: https://code.google.com/p/v8/source/detail?r=17997""", body)
OLDNEW
« no previous file with comments | « tools/push-to-trunk/push_to_trunk.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698