Commit f8815f89 authored by Robert Ma's avatar Robert Ma Committed by Commit Bot

[web tests] Show error details in PRESUBMIT_test.py

While working on https://crrev.com/c/2419575, I found that errors in
PRESUBMIT_test.py were not informative. This CL would produce more error
details when e.g. `wpt lint` fails to run.

Change-Id: I87cd4a98bdf3eb7ca49313d30e799bd440d4ee2e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2418990Reviewed-by: default avatarStephen McGruer <smcgruer@chromium.org>
Commit-Queue: Robert Ma <robertma@chromium.org>
Cr-Commit-Position: refs/heads/master@{#808882}
parent 1f2bba2f
...@@ -40,6 +40,9 @@ class MockPresubmitError(object): ...@@ -40,6 +40,9 @@ class MockPresubmitError(object):
self.items = items self.items = items
self.long_text = long_text self.long_text = long_text
def __repr__(self):
return self.message + "\n" + self.long_text
class MockPresubmitWarning(object): class MockPresubmitWarning(object):
"""A minimal mock of an warning class for our checks.""" """A minimal mock of an warning class for our checks."""
...@@ -92,7 +95,7 @@ class LintWPTTest(unittest.TestCase): ...@@ -92,7 +95,7 @@ class LintWPTTest(unittest.TestCase):
mock_output = MockOutputApi() mock_output = MockOutputApi()
mock_input.affected_paths = [os.path.abspath(self._test_file)] mock_input.affected_paths = [os.path.abspath(self._test_file)]
errors = PRESUBMIT._LintWPT(mock_input, mock_output) errors = PRESUBMIT._LintWPT(mock_input, mock_output)
self.assertEqual(len(errors), 0) self.assertEqual(errors, [])
def testWPTLintErrors(self): def testWPTLintErrors(self):
# Private LayoutTests APIs are not allowed. # Private LayoutTests APIs are not allowed.
...@@ -103,6 +106,7 @@ class LintWPTTest(unittest.TestCase): ...@@ -103,6 +106,7 @@ class LintWPTTest(unittest.TestCase):
mock_input.affected_paths = [os.path.abspath(self._test_file)] mock_input.affected_paths = [os.path.abspath(self._test_file)]
errors = PRESUBMIT._LintWPT(mock_input, mock_output) errors = PRESUBMIT._LintWPT(mock_input, mock_output)
self.assertEqual(len(errors), 1) self.assertEqual(len(errors), 1)
self.assertTrue(isinstance(errors[0], MockPresubmitError))
def testWPTLintIgnore(self): def testWPTLintIgnore(self):
os.mkdir(self._ignored_directory) os.mkdir(self._ignored_directory)
...@@ -115,7 +119,7 @@ class LintWPTTest(unittest.TestCase): ...@@ -115,7 +119,7 @@ class LintWPTTest(unittest.TestCase):
mock_output = MockOutputApi() mock_output = MockOutputApi()
mock_input.affected_paths = files mock_input.affected_paths = files
errors = PRESUBMIT._LintWPT(mock_input, mock_output) errors = PRESUBMIT._LintWPT(mock_input, mock_output)
self.assertEqual(len(errors), 0) self.assertEqual(errors, [])
class DontModifyIDLFilesTest(unittest.TestCase): class DontModifyIDLFilesTest(unittest.TestCase):
...@@ -132,14 +136,14 @@ class DontModifyIDLFilesTest(unittest.TestCase): ...@@ -132,14 +136,14 @@ class DontModifyIDLFilesTest(unittest.TestCase):
mock_output = MockOutputApi() mock_output = MockOutputApi()
mock_input.affected_paths = [os.path.join(mock_input.PresubmitLocalPath(), 'wpt', 'css', 'foo.html')] mock_input.affected_paths = [os.path.join(mock_input.PresubmitLocalPath(), 'wpt', 'css', 'foo.html')]
errors = PRESUBMIT._DontModifyIDLFiles(mock_input, mock_output) errors = PRESUBMIT._DontModifyIDLFiles(mock_input, mock_output)
self.assertEqual(len(errors), 0) self.assertEqual(errors, [])
def testModifiesInterfaceDirOutsideOfWPT(self): def testModifiesInterfaceDirOutsideOfWPT(self):
mock_input = MockInputApi() mock_input = MockInputApi()
mock_output = MockOutputApi() mock_output = MockOutputApi()
mock_input.affected_paths = [os.path.join(mock_input.PresubmitLocalPath(), 'other', 'interfaces', 'test.idl')] mock_input.affected_paths = [os.path.join(mock_input.PresubmitLocalPath(), 'other', 'interfaces', 'test.idl')]
errors = PRESUBMIT._DontModifyIDLFiles(mock_input, mock_output) errors = PRESUBMIT._DontModifyIDLFiles(mock_input, mock_output)
self.assertEqual(len(errors), 0) self.assertEqual(errors, [])
if __name__ == '__main__': if __name__ == '__main__':
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment