| Index: tests/presubmit_unittest.py
|
| ===================================================================
|
| --- tests/presubmit_unittest.py (revision 122929)
|
| +++ tests/presubmit_unittest.py (working copy)
|
| @@ -1498,13 +1498,16 @@
|
| self.assertEquals(len(results2), 1)
|
| self.assertEquals(results2[0].__class__, error_type)
|
|
|
| - def ContentTest(self, check, content1, content2, error_type):
|
| + def ContentTest(self, check, content1, content1_path, content2,
|
| + content2_path, error_type):
|
| """Runs a test of a content-checking rule.
|
|
|
| Args:
|
| check: the check to run.
|
| content1: content which is expected to pass the check.
|
| + content1_path: file path for content1.
|
| content2: content which is expected to fail the check.
|
| + content2_path: file path for content2.
|
| error_type: the type of the error expected for content2.
|
| """
|
| change1 = presubmit.Change(
|
| @@ -1514,12 +1517,13 @@
|
| input_api1.AffectedFiles(
|
| include_deletes=False,
|
| file_filter=mox.IgnoreArg()).AndReturn([affected_file])
|
| + affected_file.LocalPath().AndReturn(content1_path)
|
| affected_file.NewContents().AndReturn([
|
| - 'ahoy',
|
| + 'afoo',
|
| content1,
|
| - 'hay',
|
| - 'yer',
|
| - 'ya'])
|
| + 'bfoo',
|
| + 'cfoo',
|
| + 'dfoo'])
|
|
|
| change2 = presubmit.Change(
|
| 'foo2', 'foo2\n', self.fake_root_dir, None, 0, 0, None)
|
| @@ -1528,19 +1532,20 @@
|
| input_api2.AffectedFiles(
|
| include_deletes=False,
|
| file_filter=mox.IgnoreArg()).AndReturn([affected_file])
|
| + affected_file.LocalPath().AndReturn(content2_path)
|
| affected_file.NewContents().AndReturn([
|
| - 'ahoy',
|
| + 'dfoo',
|
| content2,
|
| - 'hay',
|
| - 'yer',
|
| - 'ya'])
|
| + 'efoo',
|
| + 'ffoo',
|
| + 'gfoo'])
|
| # It falls back to ChangedContents when there is a failure. This is an
|
| # optimization since NewContents() is much faster to execute than
|
| # ChangedContents().
|
| affected_file.ChangedContents().AndReturn([
|
| (42, content2),
|
| - (43, 'yer'),
|
| - (23, 'ya')])
|
| + (43, 'hfoo'),
|
| + (23, 'ifoo')])
|
| affected_file.LocalPath().AndReturn('foo.cc')
|
|
|
| self.mox.ReplayAll()
|
| @@ -1663,14 +1668,14 @@
|
| def testCannedCheckDoNotSubmitInFiles(self):
|
| self.ContentTest(
|
| lambda x,y,z: presubmit_canned_checks.CheckDoNotSubmitInFiles(x, y),
|
| - 'DO NOTSUBMIT', 'DO NOT ' + 'SUBMIT',
|
| + 'DO NOTSUBMIT', None, 'DO NOT ' + 'SUBMIT', None,
|
| presubmit.OutputApi.PresubmitError)
|
|
|
| def testCheckChangeHasNoStrayWhitespace(self):
|
| self.ContentTest(
|
| lambda x,y,z:
|
| presubmit_canned_checks.CheckChangeHasNoStrayWhitespace(x, y),
|
| - 'Foo', 'Foo ',
|
| + 'Foo', None, 'Foo ', None,
|
| presubmit.OutputApi.PresubmitPromptWarning)
|
|
|
| def testCheckChangeHasOnlyOneEol(self):
|
| @@ -1696,12 +1701,12 @@
|
|
|
| def testCheckChangeTodoHasOwner(self):
|
| self.ContentTest(presubmit_canned_checks.CheckChangeTodoHasOwner,
|
| - "TODO(foo): bar", "TODO: bar",
|
| + "TODO(foo): bar", None, "TODO: bar", None,
|
| presubmit.OutputApi.PresubmitPromptWarning)
|
|
|
| def testCannedCheckChangeHasNoTabs(self):
|
| self.ContentTest(presubmit_canned_checks.CheckChangeHasNoTabs,
|
| - 'blah blah', 'blah\tblah',
|
| + 'blah blah', None, 'blah\tblah', None,
|
| presubmit.OutputApi.PresubmitPromptWarning)
|
|
|
| # Make sure makefiles are ignored.
|
| @@ -1716,8 +1721,10 @@
|
| affected_file3.LocalPath().AndReturn('makefile')
|
| # Only this one will trigger.
|
| affected_file4 = self.mox.CreateMock(presubmit.SvnAffectedFile)
|
| + affected_file1.LocalPath().AndReturn('foo.cc')
|
| + affected_file1.NewContents().AndReturn(['yo, '])
|
| affected_file4.LocalPath().AndReturn('makefile.foo')
|
| - affected_file1.NewContents().AndReturn(['yo, '])
|
| + affected_file4.LocalPath().AndReturn('makefile.foo')
|
| affected_file4.NewContents().AndReturn(['ye\t'])
|
| affected_file4.ChangedContents().AndReturn([(46, 'ye\t')])
|
| affected_file4.LocalPath().AndReturn('makefile.foo')
|
| @@ -1744,12 +1751,17 @@
|
|
|
| def testCannedCheckLongLines(self):
|
| check = lambda x, y, z: presubmit_canned_checks.CheckLongLines(x, y, 10, z)
|
| - self.ContentTest(check, '0123456789', '01234567890',
|
| + self.ContentTest(check, '0123456789', None, '01234567890', None,
|
| presubmit.OutputApi.PresubmitPromptWarning)
|
|
|
| + def testCannedCheckJavaLongLines(self):
|
| + check = lambda x, y, _: presubmit_canned_checks.CheckLongLines(x, y)
|
| + self.ContentTest(check, 'A ' * 50, 'foo.java', 'A ' * 50 + 'B', 'foo.java',
|
| + presubmit.OutputApi.PresubmitPromptWarning)
|
| +
|
| def testCannedCheckLongLinesLF(self):
|
| check = lambda x, y, z: presubmit_canned_checks.CheckLongLines(x, y, 10, z)
|
| - self.ContentTest(check, '012345678\n', '0123456789\n',
|
| + self.ContentTest(check, '012345678\n', None, '0123456789\n', None,
|
| presubmit.OutputApi.PresubmitPromptWarning)
|
|
|
| def testCannedCheckLongLinesMacro(self):
|
| @@ -1758,7 +1770,9 @@
|
| check,
|
| # Put a space in so it doesn't trigger long symbols. Allow 1/3 more.
|
| '#if 56 89 12 45',
|
| + None,
|
| '#if 56 89 12 456',
|
| + None,
|
| presubmit.OutputApi.PresubmitPromptWarning)
|
|
|
| def testCannedCheckLongLinesHttp(self):
|
| @@ -1766,7 +1780,9 @@
|
| self.ContentTest(
|
| check,
|
| ' http:// 0 23 5',
|
| + None,
|
| ' http:// 0 23 56',
|
| + None,
|
| presubmit.OutputApi.PresubmitPromptWarning)
|
|
|
| def testCannedCheckLongLinesLongSymbol(self):
|
| @@ -1774,7 +1790,9 @@
|
| self.ContentTest(
|
| check,
|
| ' TUP5D_LoNG_SY ',
|
| + None,
|
| ' TUP5D_LoNG_SY5 ',
|
| + None,
|
| presubmit.OutputApi.PresubmitPromptWarning)
|
|
|
| def testCheckChangeSvnEolStyleCommit(self):
|
| @@ -2257,6 +2275,7 @@
|
| for _ in range(3):
|
| input_api.AffectedFiles(file_filter=mox.IgnoreArg(), include_deletes=False
|
| ).AndReturn([affected_file])
|
| + affected_file.LocalPath()
|
| affected_file.NewContents().AndReturn('Hey!\nHo!\nHey!\nHo!\n\n')
|
| affected_file.ChangedContents().AndReturn([
|
| (0, 'Hey!\n'),
|
|
|