| 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 a8337095582cc390729bf193230e537b999cfbc2..42b26cfb7a9ad01028308f39847cb321c44db8d1 100644
|
| --- a/tools/push-to-trunk/test_scripts.py
|
| +++ b/tools/push-to-trunk/test_scripts.py
|
| @@ -53,8 +53,20 @@ TEST_CONFIG = {
|
|
|
|
|
| class ToplevelTest(unittest.TestCase):
|
| + def testMakeComment(self):
|
| + self.assertEquals("# Line 1\n# Line 2\n#",
|
| + MakeComment(" Line 1\n Line 2\n"))
|
| + self.assertEquals("#Line 1\n#Line 2",
|
| + MakeComment("Line 1\n Line 2"))
|
| +
|
| + def testStripComments(self):
|
| + self.assertEquals(" Line 1\n Line 3\n",
|
| + StripComments(" Line 1\n# Line 2\n Line 3\n#\n"))
|
| + self.assertEquals("\nLine 2 ### Test\n #",
|
| + StripComments("###\n# \n\n# Line 1\nLine 2 ### Test\n #"))
|
| +
|
| def testMakeChangeLogBodySimple(self):
|
| - commits = lambda: [
|
| + commits = [
|
| [" Title text 1",
|
| "Title text 1\n\nBUG=\n",
|
| " author1@chromium.org"],
|
| @@ -70,8 +82,27 @@ class ToplevelTest(unittest.TestCase):
|
| MakeChangeLogBody(commits))
|
|
|
| def testMakeChangeLogBodyEmpty(self):
|
| - commits = lambda: []
|
| - self.assertEquals("", MakeChangeLogBody(commits))
|
| + self.assertEquals("", MakeChangeLogBody([]))
|
| +
|
| + def testMakeChangeLogBodyAutoFormat(self):
|
| + commits = [
|
| + [" Title text 1",
|
| + "Title text 1\nLOG=y\nBUG=\n",
|
| + " author1@chromium.org"],
|
| + [" Title text 2",
|
| + "Title text 2\n\nBUG=1234\n",
|
| + " author2@chromium.org"],
|
| + [" Title text 3",
|
| + "Title text 3\n\nBUG=1234\nLOG = Yes\n",
|
| + " author3@chromium.org"],
|
| + [" Title text 3",
|
| + "Title text 4\n\nBUG=1234\nLOG=\n",
|
| + " author4@chromium.org"],
|
| + ]
|
| + self.assertEquals(" Title text 1\n\n"
|
| + " Title text 3\n"
|
| + " (Chromium issue 1234)\n\n",
|
| + MakeChangeLogBody(commits, True))
|
|
|
| def testMakeChangeLogBugReferenceEmpty(self):
|
| self.assertEquals("", MakeChangeLogBugReference(""))
|
| @@ -327,28 +358,55 @@ class ScriptTest(unittest.TestCase):
|
| TEST_CONFIG[CHANGELOG_ENTRY_FILE] = self.MakeEmptyTempFile()
|
|
|
| self._git_recipe = [
|
| - ["log 1234..HEAD --format=%H", "rev1\nrev2"],
|
| + ["log 1234..HEAD --format=%H", "rev1\nrev2\nrev3"],
|
| ["log -1 rev1 --format=\"%w(80,8,8)%s\"", " Title text 1"],
|
| - ["log -1 rev1 --format=\"%B\"", "Title\n\nBUG=\n"],
|
| + ["log -1 rev1 --format=\"%B\"", "Title\n\nBUG=\nLOG=y\n"],
|
| ["log -1 rev1 --format=\"%w(80,8,8)(%an)\"",
|
| " author1@chromium.org"],
|
| ["log -1 rev2 --format=\"%w(80,8,8)%s\"", " Title text 2"],
|
| - ["log -1 rev2 --format=\"%B\"", "Title\n\nBUG=321\n"],
|
| + ["log -1 rev2 --format=\"%B\"", "Title\n\nBUG=123\nLOG= \n"],
|
| ["log -1 rev2 --format=\"%w(80,8,8)(%an)\"",
|
| " author2@chromium.org"],
|
| + ["log -1 rev3 --format=\"%w(80,8,8)%s\"", " Title text 3"],
|
| + ["log -1 rev3 --format=\"%B\"", "Title\n\nBUG=321\nLOG=true\n"],
|
| + ["log -1 rev3 --format=\"%w(80,8,8)(%an)\"",
|
| + " author3@chromium.org"],
|
| ]
|
|
|
| self.MakeStep().Persist("last_push", "1234")
|
| self.MakeStep(PrepareChangeLog).Run()
|
|
|
| - cl = FileToText(TEST_CONFIG[CHANGELOG_ENTRY_FILE])
|
| - self.assertTrue(re.search(r"\d+\-\d+\-\d+: Version 3\.22\.5", cl))
|
| - self.assertTrue(re.search(r" Title text 1", cl))
|
| - self.assertTrue(re.search(r" Title text 2", cl))
|
| - self.assertTrue(re.search(r" author1@chromium.org", cl))
|
| - self.assertTrue(re.search(r" author2@chromium.org", cl))
|
| - self.assertTrue(re.search(r" \(Chromium issue 321\)", cl))
|
| - self.assertFalse(re.search(r"BUG=", cl))
|
| + actual_cl = FileToText(TEST_CONFIG[CHANGELOG_ENTRY_FILE])
|
| +
|
| + # TODO(machenbach): Mock out call to date() in order to make a fixed
|
| + # comparison here instead of a regexp match.
|
| + expected_cl = """\\d+\\-\\d+\\-\\d+: Version 3\\.22\\.5
|
| +
|
| + Title text 1
|
| +
|
| + Title text 3
|
| + \\(Chromium issue 321\\)
|
| +
|
| + Performance and stability improvements on all platforms\\.
|
| +#
|
| +# The change log above is auto-generated\\. Please review if all relevant
|
| +# commit messages from the list below are included\\.
|
| +# All lines starting with # will be stripped\\.
|
| +#
|
| +# Title text 1
|
| +# author1@chromium\\.org
|
| +#
|
| +# Title text 2
|
| +# \\(Chromium issue 123\\)
|
| +# author2@chromium\\.org
|
| +#
|
| +# Title text 3
|
| +# \\(Chromium issue 321\\)
|
| +# author3@chromium\\.org
|
| +#
|
| +#"""
|
| +
|
| + self.assertTrue(re.match(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"))
|
| @@ -447,9 +505,17 @@ class ScriptTest(unittest.TestCase):
|
| self.assertTrue(re.search(r"Version 3.22.5", cl))
|
| self.assertTrue(re.search(r" Log text 1", cl))
|
| self.assertTrue(re.search(r" \(issue 321\)", cl))
|
| + self.assertFalse(re.search(r" author1@chromium\.org", cl))
|
| +
|
| + # Make sure all comments got stripped.
|
| + self.assertFalse(re.search(r"^#", cl, flags=re.M))
|
| +
|
| version = FileToText(TEST_CONFIG[VERSION_FILE])
|
| self.assertTrue(re.search(r"#define BUILD_NUMBER\s+6", version))
|
|
|
| + def CheckUpload():
|
| + cl = FileToText(TEST_CONFIG[CHANGELOG_FILE])
|
| +
|
| def CheckSVNCommit():
|
| commit = FileToText(TEST_CONFIG[COMMITMSG_FILE])
|
| self.assertTrue(re.search(r"Version 3.22.5", commit))
|
| @@ -475,7 +541,7 @@ class ScriptTest(unittest.TestCase):
|
| ["log -1 1234", "Last push ouput\n"],
|
| ["log 1234..HEAD --format=%H", "rev1\n"],
|
| ["log -1 rev1 --format=\"%w(80,8,8)%s\"", " Log text 1.\n"],
|
| - ["log -1 rev1 --format=\"%B\"", "Text\nBUG=v8:321\nText\n"],
|
| + ["log -1 rev1 --format=\"%B\"", "Text\nLOG=YES\nBUG=v8:321\nText\n"],
|
| ["log -1 rev1 --format=\"%w(80,8,8)(%an)\"",
|
| " author1@chromium.org\n"],
|
| [("commit -a -m \"Prepare push to trunk. "
|
|
|