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( ...@@ -51,7 +51,8 @@ _tag_line_re = re.compile(
SPECIAL_KEYS = { SPECIAL_KEYS = {
'Reviewers' : 'R', 'Reviewers' : 'R',
'BugIDs' : 'BUG', 'BugIDs' : 'BUG',
'Tested': 'TESTED' 'Tested': 'TESTED',
'Test': 'TEST'
} }
......
...@@ -6,6 +6,24 @@ ...@@ -6,6 +6,24 @@
"""Generic presubmit checks that can be reused by other presubmit checks.""" """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): def CheckChangeHasTestedField(input_api, output_api):
"""Requires that the changelist have a TESTED= field.""" """Requires that the changelist have a TESTED= field."""
if input_api.change.Tested: if input_api.change.Tested:
......
...@@ -584,14 +584,41 @@ class CannedChecksUnittest(PresubmitTestsBase): ...@@ -584,14 +584,41 @@ class CannedChecksUnittest(PresubmitTestsBase):
def testMembersChanged(self): def testMembersChanged(self):
members = [ members = [
'CheckChangeHasNoTabs', 'CheckChangeHasQaField', 'CheckChangeHasBugField', 'CheckChangeHasNoTabs',
'CheckChangeHasTestedField', 'CheckDoNotSubmit', 'CheckChangeHasQaField', 'CheckChangeHasTestedField',
'CheckChangeHasTestField', 'CheckDoNotSubmit',
'CheckDoNotSubmitInDescription', 'CheckDoNotSubmitInFiles', 'CheckDoNotSubmitInDescription', 'CheckDoNotSubmitInFiles',
'CheckLongLines', 'CheckTreeIsOpen', 'CheckLongLines', 'CheckTreeIsOpen',
] ]
# If this test fails, you should add the relevant test. # If this test fails, you should add the relevant test.
self.compareMembers(presubmit_canned_checks, members) 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): def testCannedCheckChangeHasTestedField(self):
change = self.MakeBasicChange('foo', change = self.MakeBasicChange('foo',
'Foo\nTESTED=did some stuff') '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