Commit 00c41e45 authored by kuchhal@chromium.org's avatar kuchhal@chromium.org

Add presubmit checks to look for BUG= and TEST= tags in change list description (Part 1 of 2).

BUG=11287
TEST=gcl commit should fail unless BUG= & TEST= exist in change list description or --no_presubmit is used.

Review URL: http://codereview.chromium.org/113294

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@15905 0039d316-1c4b-4281-b951-d872f2087c98
parent 4810a966
......@@ -51,7 +51,8 @@ _tag_line_re = re.compile(
SPECIAL_KEYS = {
'Reviewers' : 'R',
'BugIDs' : 'BUG',
'Tested': 'TESTED'
'Tested': 'TESTED',
'Test': 'TEST'
}
......
......@@ -6,6 +6,24 @@
"""Generic presubmit checks that can be reused by other presubmit checks."""
def CheckChangeHasTestField(input_api, output_api):
"""Requires that the changelist have a TEST= field."""
if input_api.change.Test:
return []
else:
return [output_api.PresubmitNotifyResult(
"Changelist should have a TEST= field. TEST=none is allowed.")]
def CheckChangeHasBugField(input_api, output_api):
"""Requires that the changelist have a BUG= field."""
if input_api.change.BugIDs:
return []
else:
return [output_api.PresubmitNotifyResult(
"Changelist should have a BUG= field. BUG=none is allowed.")]
def CheckChangeHasTestedField(input_api, output_api):
"""Requires that the changelist have a TESTED= field."""
if input_api.change.Tested:
......
......@@ -584,14 +584,41 @@ class CannedChecksUnittest(PresubmitTestsBase):
def testMembersChanged(self):
members = [
'CheckChangeHasNoTabs', 'CheckChangeHasQaField',
'CheckChangeHasTestedField', 'CheckDoNotSubmit',
'CheckChangeHasBugField', 'CheckChangeHasNoTabs',
'CheckChangeHasQaField', 'CheckChangeHasTestedField',
'CheckChangeHasTestField', 'CheckDoNotSubmit',
'CheckDoNotSubmitInDescription', 'CheckDoNotSubmitInFiles',
'CheckLongLines', 'CheckTreeIsOpen',
]
# If this test fails, you should add the relevant test.
self.compareMembers(presubmit_canned_checks, members)
def testCannedCheckChangeHasBugField(self):
change = self.MakeBasicChange('foo',
'Foo\nBUG=1234')
api = presubmit.InputApi(change, 'PRESUBMIT.py')
self.failIf(presubmit_canned_checks.CheckChangeHasBugField(
api, presubmit.OutputApi))
change = self.MakeBasicChange('foo',
'Foo\nNEVERTESTED=did some stuff')
api = presubmit.InputApi(change, 'PRESUBMIT.py')
self.failUnless(presubmit_canned_checks.CheckChangeHasBugField(
api, presubmit.OutputApi))
def testCannedCheckChangeHasTestField(self):
change = self.MakeBasicChange('foo',
'Foo\nTEST=did some stuff')
api = presubmit.InputApi(change, 'PRESUBMIT.py')
self.failIf(presubmit_canned_checks.CheckChangeHasTestField(
api, presubmit.OutputApi))
change = self.MakeBasicChange('foo',
'Foo\nNOTEST=did some stuff')
api = presubmit.InputApi(change, 'PRESUBMIT.py')
self.failUnless(presubmit_canned_checks.CheckChangeHasTestField(
api, presubmit.OutputApi))
def testCannedCheckChangeHasTestedField(self):
change = self.MakeBasicChange('foo',
'Foo\nTESTED=did some stuff')
......
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