Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(971)

Unified Diff: tests/presubmit_unittest.py

Issue 115616: Add repository root presubmit support. (Closed)
Patch Set: Fix diff to not include the prior patches. Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/gcl_unittest.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 = [
« no previous file with comments | « tests/gcl_unittest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698