Index: tests/presubmit_unittest.py |
diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py |
index 88b2f71b74241156609d5dfba172294a9e96abae..f50a0c59bdf17b54eddaf3f9e24007109783d8f9 100755 |
--- a/tests/presubmit_unittest.py |
+++ b/tests/presubmit_unittest.py |
@@ -366,6 +366,8 @@ class PresubmitUnittest(PresubmitTestsBase): |
def CheckChangeOnUpload(input_api, output_api): |
print 'This is a test' |
return [output_api.PresubmitError("!!")] |
+def CheckChangeOnCommit(input_api, output_api): |
+ raise Exception("Test error") |
""" |
def MockReadFile(dummy): |
return '' |
@@ -394,6 +396,45 @@ def CheckChangeOnUpload(input_api, output_api): |
affected_files_and_dirs = change.AffectedFiles(include_dirs=True) |
self.failUnless(len(affected_files_and_dirs) == 2) |
+ def testTags(self): |
+ DEFAULT_SCRIPT = """ |
+def CheckChangeOnUpload(input_api, output_api): |
+ if input_api.change.tags['BUG'] != 'boo': |
+ return [output_api.PresubmitError('Tag parsing failed. 1')] |
+ if input_api.change.tags['STORY'] != 'http://tracker.com/42': |
+ return [output_api.PresubmitError('Tag parsing failed. 2')] |
+ if 'TEST' in input_api.change.tags: |
+ return [output_api.PresubmitError('Tag parsing failed. 3')] |
+ if input_api.change.DescriptionText() != 'Blah Blah': |
+ return [output_api.PresubmitError('Tag parsing failed. 4 ' + |
+ input_api.change.DescriptionText())] |
+ if (input_api.change.FullDescriptionText() != |
+ 'Blah Blah\\n\\nSTORY=http://tracker.com/42\\nBUG=boo\\n'): |
+ return [output_api.PresubmitError('Tag parsing failed. 5 ' + |
+ input_api.change.FullDescriptionText())] |
+ return [output_api.PresubmitNotifyResult(input_api.change.tags['STORY'])] |
+def CheckChangeOnCommit(input_api, output_api): |
+ raise Exception("Test error") |
+""" |
+ def MockReadFile(dummy): |
+ return '' |
+ gcl.ReadFile = MockReadFile |
+ def MockIsFile(dummy): |
+ return False |
+ os.path.isfile = MockIsFile |
+ change = gcl.ChangeInfo( |
+ name='foo', |
+ description="Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n") |
+ output = StringIO.StringIO() |
+ input = StringIO.StringIO('y\n') |
+ self.failUnless(presubmit.DoPresubmitChecks(change, False, True, output, |
+ input, DEFAULT_SCRIPT)) |
+ self.assertEquals(output.getvalue(), |
+ ('Warning, no presubmit.py found.\n' |
+ 'Running default presubmit script.\n\n' |
+ '** Presubmit Messages **\n\n' |
+ 'http://tracker.com/42\n\n')) |
+ |
class InputApiUnittest(PresubmitTestsBase): |
"""Tests presubmit.InputApi.""" |