Using Change.BugsFromDescription to read CL bugs in PRESUBMIT checks.
Since we migrated to Gerrit recently we cannot rely on the BUG= format
for this check because:
* it is deprecated: https://cs.chromium.org/chromium/tools/depot_tools/presubmit_support.py?l=908&rcl=94652a37677488738626b96ff504fc07afbbaa87
* it causes confusion in our users because Gerrit uses Bug: and all the error messages were requiring BUG=
This CL uses a more general API to get the list of bugs from in a CL and
renames BUG= to Bug:.
Bug: None
Change-Id: I7e86fe6d8ca426d9e4bf3bd39021d2a510ec196f
No-Treechecks: True
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/8881
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20260}
diff --git a/presubmit_test.py b/presubmit_test.py
index 5c653d6..9f97df9 100755
--- a/presubmit_test.py
+++ b/presubmit_test.py
@@ -15,14 +15,15 @@
import unittest
import PRESUBMIT
-from presubmit_test_mocks import MockInputApi, MockOutputApi, MockFile
+# pylint: disable=line-too-long
+from presubmit_test_mocks import MockInputApi, MockOutputApi, MockFile, MockChange
class CheckBugEntryFieldTest(unittest.TestCase):
def testCommitMessageBugEntryWithNoError(self):
mock_input_api = MockInputApi()
mock_output_api = MockOutputApi()
- mock_input_api.change.BUG = 'webrtc:1234'
+ mock_input_api.change = MockChange([], ['webrtc:1234'])
errors = PRESUBMIT.CheckCommitMessageBugEntry(mock_input_api,
mock_output_api)
self.assertEqual(0, len(errors))
@@ -30,19 +31,29 @@
def testCommitMessageBugEntryReturnError(self):
mock_input_api = MockInputApi()
mock_output_api = MockOutputApi()
- mock_input_api.change.BUG = 'webrtc:1234,webrtc=4321'
+ mock_input_api.change = MockChange([], ['webrtc:1234', 'webrtc=4321'])
errors = PRESUBMIT.CheckCommitMessageBugEntry(mock_input_api,
mock_output_api)
self.assertEqual(1, len(errors))
- self.assertEqual(('Bogus BUG entry: webrtc=4321. Please specify'
+ self.assertEqual(('Bogus Bug entry: webrtc=4321. Please specify'
' the issue tracker prefix and the issue number,'
' separated by a colon, e.g. webrtc:123 or'
' chromium:12345.'), str(errors[0]))
+ def testCommitMessageBugEntryWithoutPrefix(self):
+ mock_input_api = MockInputApi()
+ mock_output_api = MockOutputApi()
+ mock_input_api.change = MockChange([], ['1234'])
+ errors = PRESUBMIT.CheckCommitMessageBugEntry(mock_input_api,
+ mock_output_api)
+ self.assertEqual(1, len(errors))
+ self.assertEqual(('Bug entry requires issue tracker prefix, '
+ 'e.g. webrtc:1234'), str(errors[0]))
+
def testCommitMessageBugEntryIsNone(self):
mock_input_api = MockInputApi()
mock_output_api = MockOutputApi()
- mock_input_api.change.BUG = 'None'
+ mock_input_api.change = MockChange([], ['None'])
errors = PRESUBMIT.CheckCommitMessageBugEntry(mock_input_api,
mock_output_api)
self.assertEqual(0, len(errors))