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. " |