Index: tools/push-to-trunk/test_scripts.py |
diff --git a/tools/push-to-trunk/test_scripts.py b/tools/push-to-trunk/test_scripts.py |
index 242efba8bcbbc30732bfaa6fa5f703b88f450ab6..668ced6b80c793f0df9b556bff9b09c04f2393fa 100644 |
--- a/tools/push-to-trunk/test_scripts.py |
+++ b/tools/push-to-trunk/test_scripts.py |
@@ -298,6 +298,7 @@ class ScriptTest(unittest.TestCase): |
def MakeStep(self, step_class=Step, state=None, options=None): |
"""Convenience wrapper.""" |
options = options or CommonOptions(MakeOptions()) |
+ state = state if state is not None else self._state |
return MakeStep(step_class=step_class, number=0, state=state, |
config=TEST_CONFIG, options=options, |
side_effect_handler=self) |
@@ -356,6 +357,7 @@ class ScriptTest(unittest.TestCase): |
self._rl_mock = SimpleMock("readline") |
self._url_mock = SimpleMock("readurl") |
self._tmp_files = [] |
+ self._state = {} |
def tearDown(self): |
Command("rm", "-rf %s*" % TEST_CONFIG[PERSISTFILE_BASENAME]) |
@@ -369,12 +371,6 @@ class ScriptTest(unittest.TestCase): |
self._rl_mock.AssertFinished() |
self._url_mock.AssertFinished() |
- def testPersistRestore(self): |
- self.MakeStep().Persist("test1", "") |
- self.assertEquals("", self.MakeStep().Restore("test1")) |
- self.MakeStep().Persist("test2", "AB123") |
- self.assertEquals("AB123", self.MakeStep().Restore("test2")) |
- |
def testGitOrig(self): |
self.assertTrue(Command("git", "--version").startswith("git version")) |
@@ -396,7 +392,7 @@ class ScriptTest(unittest.TestCase): |
self.ExpectReadline(["Y"]) |
self.MakeStep().CommonPrepare() |
self.MakeStep().PrepareBranch() |
- self.assertEquals("some_branch", self.MakeStep().Restore("current_branch")) |
+ self.assertEquals("some_branch", self._state["current_branch"]) |
def testCommonPrepareNoConfirm(self): |
self.ExpectGit([ |
@@ -408,7 +404,7 @@ class ScriptTest(unittest.TestCase): |
self.ExpectReadline(["n"]) |
self.MakeStep().CommonPrepare() |
self.assertRaises(Exception, self.MakeStep().PrepareBranch) |
- self.assertEquals("some_branch", self.MakeStep().Restore("current_branch")) |
+ self.assertEquals("some_branch", self._state["current_branch"]) |
def testCommonPrepareDeleteBranchFailure(self): |
self.ExpectGit([ |
@@ -421,7 +417,7 @@ class ScriptTest(unittest.TestCase): |
self.ExpectReadline(["Y"]) |
self.MakeStep().CommonPrepare() |
self.assertRaises(Exception, self.MakeStep().PrepareBranch) |
- self.assertEquals("some_branch", self.MakeStep().Restore("current_branch")) |
+ self.assertEquals("some_branch", self._state["current_branch"]) |
def testInitialEnvironmentChecks(self): |
TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() |
@@ -432,14 +428,10 @@ class ScriptTest(unittest.TestCase): |
TEST_CONFIG[VERSION_FILE] = self.MakeTempVersionFile() |
step = self.MakeStep() |
step.ReadAndPersistVersion() |
- self.assertEquals("3", self.MakeStep().Restore("major")) |
- self.assertEquals("22", self.MakeStep().Restore("minor")) |
- self.assertEquals("5", self.MakeStep().Restore("build")) |
- self.assertEquals("0", self.MakeStep().Restore("patch")) |
- self.assertEquals("3", step._state["major"]) |
- self.assertEquals("22", step._state["minor"]) |
- self.assertEquals("5", step._state["build"]) |
- self.assertEquals("0", step._state["patch"]) |
+ self.assertEquals("3", step["major"]) |
+ self.assertEquals("22", step["minor"]) |
+ self.assertEquals("5", step["build"]) |
+ self.assertEquals("0", step["patch"]) |
def testRegex(self): |
self.assertEqual("(issue 321)", |
@@ -490,7 +482,7 @@ class ScriptTest(unittest.TestCase): |
"Title\n\nBUG=456\nLOG=N\n\n"], |
]) |
- self.MakeStep().Persist("last_push", "1234") |
+ self._state["last_push"] = "1234" |
self.MakeStep(PrepareChangeLog).Run() |
actual_cl = FileToText(TEST_CONFIG[CHANGELOG_ENTRY_FILE]) |
@@ -522,10 +514,10 @@ class ScriptTest(unittest.TestCase): |
#""" |
self.assertEquals(expected_cl, actual_cl) |
- self.assertEquals("3", self.MakeStep().Restore("major")) |
- self.assertEquals("22", self.MakeStep().Restore("minor")) |
- self.assertEquals("5", self.MakeStep().Restore("build")) |
- self.assertEquals("0", self.MakeStep().Restore("patch")) |
+ self.assertEquals("3", self._state["major"]) |
+ self.assertEquals("22", self._state["minor"]) |
+ self.assertEquals("5", self._state["build"]) |
+ self.assertEquals("0", self._state["patch"]) |
def testEditChangeLog(self): |
TEST_CONFIG[CHANGELOG_ENTRY_FILE] = self.MakeEmptyTempFile() |
@@ -545,7 +537,7 @@ class ScriptTest(unittest.TestCase): |
def testIncrementVersion(self): |
TEST_CONFIG[VERSION_FILE] = self.MakeTempVersionFile() |
- self.MakeStep().Persist("build", "5") |
+ self._state["build"] = "5" |
self.ExpectReadline([ |
"Y", # Increment build number. |
@@ -553,10 +545,10 @@ class ScriptTest(unittest.TestCase): |
self.MakeStep(IncrementVersion).Run() |
- self.assertEquals("3", self.MakeStep().Restore("new_major")) |
- self.assertEquals("22", self.MakeStep().Restore("new_minor")) |
- self.assertEquals("6", self.MakeStep().Restore("new_build")) |
- self.assertEquals("0", self.MakeStep().Restore("new_patch")) |
+ self.assertEquals("3", self._state["new_major"]) |
+ self.assertEquals("22", self._state["new_minor"]) |
+ self.assertEquals("6", self._state["new_build"]) |
+ self.assertEquals("0", self._state["new_patch"]) |
def testLastChangeLogEntries(self): |
TEST_CONFIG[CHANGELOG_FILE] = self.MakeEmptyTempFile() |
@@ -584,8 +576,8 @@ class ScriptTest(unittest.TestCase): |
["svn find-rev hash1", "123455\n"], |
]) |
- self.MakeStep().Persist("prepare_commit_hash", "hash1") |
- self.MakeStep().Persist("date", "1999-11-11") |
+ self._state["prepare_commit_hash"] = "hash1" |
+ self._state["date"] = "1999-11-11" |
self.MakeStep(SquashCommits).Run() |
self.assertEquals(FileToText(TEST_CONFIG[COMMITMSG_FILE]), expected_msg) |
@@ -810,8 +802,11 @@ Performance and stability improvements on all platforms.""", commit) |
auto_roll.RunAutoRoll(TEST_CONFIG, AutoRollOptions( |
MakeOptions(status_password=status_password)), self) |
- self.assertEquals("100", self.MakeStep().Restore("lkgr")) |
- self.assertEquals("100", self.MakeStep().Restore("latest")) |
+ state = json.loads(FileToText("%s-state.json" |
+ % TEST_CONFIG[PERSISTFILE_BASENAME])) |
+ |
+ self.assertEquals("100", state["lkgr"]) |
+ self.assertEquals("100", state["latest"]) |
def testAutoRollStoppedBySettings(self): |
TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() |
@@ -906,6 +901,10 @@ LOG=N |
["svn find-rev hash3 svn/bleeding_edge", "56789"], |
["log -1 --format=%s hash3", "Title3"], |
["svn find-rev \"r12345\" svn/bleeding_edge", "hash4"], |
+ # Simulate svn being down which stops the script. |
+ ["svn find-rev \"r23456\" svn/bleeding_edge", None], |
+ # Restart script in the failing step. |
+ ["svn find-rev \"r12345\" svn/bleeding_edge", "hash4"], |
["svn find-rev \"r23456\" svn/bleeding_edge", "hash2"], |
["svn find-rev \"r34567\" svn/bleeding_edge", "hash3"], |
["svn find-rev \"r45678\" svn/bleeding_edge", "hash1"], |
@@ -964,6 +963,15 @@ LOG=N |
# ports of r12345. r56789 is the MIPS port of r34567. |
args = ["trunk", "12345", "23456", "34567"] |
self.assertTrue(merge_to_branch.ProcessOptions(options, args)) |
+ |
+ # The first run of the script stops because of the svn being down. |
+ self.assertRaises(Exception, |
+ lambda: RunMergeToBranch(TEST_CONFIG, |
+ MergeToBranchOptions(options, args), |
+ self)) |
+ |
+ # Test that state recovery after restarting the script works. |
+ options.s = 3 |
RunMergeToBranch(TEST_CONFIG, MergeToBranchOptions(options, args), self) |