| Index: tests/presubmit_unittest.py
|
| diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py
|
| index c449c710f14b6910dc2e6c92ad4aa5ac41810c96..75480d6faadbc411e563bca84099c8a41f6974c7 100755
|
| --- a/tests/presubmit_unittest.py
|
| +++ b/tests/presubmit_unittest.py
|
| @@ -62,16 +62,18 @@ class PresubmitTestsBase(unittest.TestCase):
|
| self.fail('Should not attempt to read file that is directory.')
|
| elif path.endswith('PRESUBMIT.py'):
|
| # used in testDoPresubmitChecks
|
| - return ('def CheckChangeOnUpload(input_api, output_api):\n'
|
| - ' if not input_api.change.NOSUCHKEY:\n'
|
| - ' return [output_api.PresubmitError("!!")]\n'
|
| - ' elif not input_api.change.REALLYNOSUCHKEY:\n'
|
| - ' return [output_api.PresubmitPromptWarning("??")]\n'
|
| - ' elif not input_api.change.REALLYABSOLUTELYNOSUCHKEY:\n'
|
| - ' return [output_api.PresubmitPromptWarning("??"),\n'
|
| - ' output_api.PresubmitError("XX!!XX")]\n'
|
| - ' else:\n'
|
| - ' return ()')
|
| + return """
|
| +def CheckChangeOnUpload(input_api, output_api):
|
| + if not input_api.change.NOSUCHKEY:
|
| + return [output_api.PresubmitError("!!")]
|
| + elif not input_api.change.REALLYNOSUCHKEY:
|
| + return [output_api.PresubmitPromptWarning("??")]
|
| + elif not input_api.change.REALLYABSOLUTELYNOSUCHKEY:
|
| + return [output_api.PresubmitPromptWarning("??"),
|
| + output_api.PresubmitError("XX!!XX")]
|
| + else:
|
| + return ()
|
| +"""
|
| else:
|
| return 'one:%s\r\ntwo:%s' % (path, path)
|
| gcl.ReadFile = MockReadFile
|
| @@ -303,8 +305,9 @@ class PresubmitUnittest(PresubmitTestsBase):
|
| output = StringIO.StringIO()
|
| input = StringIO.StringIO('y\n')
|
|
|
| - self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input))
|
| - self.failUnless(output.getvalue().count('!!'))
|
| + self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input,
|
| + None))
|
| + self.assertEqual(output.getvalue().count('!!'), 2)
|
|
|
| def testDoPresubmitChecksPromptsAfterWarnings(self):
|
| description_lines = ('Hello there',
|
| @@ -320,8 +323,9 @@ class PresubmitUnittest(PresubmitTestsBase):
|
| output = StringIO.StringIO()
|
| input = StringIO.StringIO('n\n') # say no to the warning
|
|
|
| - self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input))
|
| - self.failUnless(output.getvalue().count('??'))
|
| + self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input,
|
| + None))
|
| + self.assertEqual(output.getvalue().count('??'), 2)
|
|
|
| output = StringIO.StringIO()
|
| input = StringIO.StringIO('y\n') # say yes to the warning
|
| @@ -330,7 +334,8 @@ class PresubmitUnittest(PresubmitTestsBase):
|
| False,
|
| True,
|
| output,
|
| - input))
|
| + input,
|
| + None))
|
| self.failUnless(output.getvalue().count('??'))
|
|
|
| def testDoPresubmitChecksNoWarningPromptIfErrors(self):
|
| @@ -348,10 +353,40 @@ class PresubmitUnittest(PresubmitTestsBase):
|
| output = StringIO.StringIO()
|
| input = StringIO.StringIO() # should be unused
|
|
|
| - self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input))
|
| - self.failUnless(output.getvalue().count('??'))
|
| - self.failUnless(output.getvalue().count('XX!!XX'))
|
| - self.failIf(output.getvalue().count('(y/N)'))
|
| + self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input,
|
| + None))
|
| + self.assertEqual(output.getvalue().count('??'), 2)
|
| + self.assertEqual(output.getvalue().count('XX!!XX'), 2)
|
| + self.assertEqual(output.getvalue().count('(y/N)'), 0)
|
| +
|
| + def testDoDefaultPresubmitChecks(self):
|
| + description_lines = ('Hello there',
|
| + 'this is a change',
|
| + 'STORY=http://tracker/123')
|
| + files = [
|
| + ['A', 'haspresubmit\\blat.cc'],
|
| + ]
|
| + ci = gcl.ChangeInfo(name='mychange',
|
| + description='\n'.join(description_lines),
|
| + files=files)
|
| +
|
| + output = StringIO.StringIO()
|
| + input = StringIO.StringIO('y\n')
|
| + # Always fail.
|
| + DEFAULT_SCRIPT = """
|
| +def CheckChangeOnUpload(input_api, output_api):
|
| + print 'This is a test'
|
| + return [output_api.PresubmitError("!!")]
|
| +"""
|
| + def MockReadFile(dummy):
|
| + return ''
|
| + gcl.ReadFile = MockReadFile
|
| + def MockIsFile(dummy):
|
| + return False
|
| + os.path.isfile = MockIsFile
|
| + self.failIf(presubmit.DoPresubmitChecks(ci, False, True, output, input,
|
| + DEFAULT_SCRIPT))
|
| + self.assertEquals(output.getvalue().count('!!'), 1)
|
|
|
| def testDirectoryHandling(self):
|
| files = [
|
|
|