Commit c0546b98 authored by Caleb Rouleau's avatar Caleb Rouleau Committed by Commit Bot

presubmit: support 'Bug: 1234, 5678'

The current BugsFromDescription code returns ['1234, 5678'] but I think it
should return ['1234', '5678']. For 'BUG=1234, 5678' this already works.

This was preventing me from uploading
https://chromium-review.googlesource.com/c/catapult/+/1481239
because of https://cs.chromium.org/chromium/src/third_party/catapult/PRESUBMIT.py?q=catapult/PRESUBMIT.py&sq=package:chromium&g=0&l=52

See https://logs.chromium.org/logs/catapult/buildbucket/cr-buildbucket.appspot.com/8920885706080647120/+/steps/presubmit/0/stdout

Change-Id: Ibb3fca8c7a6ec664cdf9a38a8a7ac2bf66cb73ed
Reviewed-on: https://chromium-review.googlesource.com/c/1481240
Auto-Submit: Caleb Rouleau <crouleau@chromium.org>
Reviewed-by: 's avatarAaron Gable <agable@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
parent 2fdee39b
......@@ -1032,7 +1032,11 @@ class Change(object):
def BugsFromDescription(self):
"""Returns all bugs referenced in the commit description."""
tags = [b.strip() for b in self.tags.get('BUG', '').split(',') if b.strip()]
footers = git_footers.parse_footers(self._full_description).get('Bug', [])
footers = []
unsplit_footers = git_footers.parse_footers(self._full_description).get(
'Bug', [])
for unsplit_footer in unsplit_footers:
footers += [b.strip() for b in unsplit_footer.split(',')]
return sorted(set(tags + footers))
def ReviewersFromDescription(self):
......
......@@ -1553,12 +1553,19 @@ class ChangeUnittest(PresubmitTestsBase):
self.assertEquals('WHIZ=bang\nbar\nFOO=baz', change.FullDescriptionText())
self.assertEquals({'WHIZ': 'bang', 'FOO': 'baz'}, change.tags)
def testBugsFromDescription(self):
def testBugsFromDescription_MixedTagsAndFooters(self):
change = presubmit.Change(
'', 'foo\nBUG=2,1\n\nChange-Id: asdf\nBug: 3',
'', 'foo\nBUG=2,1\n\nChange-Id: asdf\nBug: 3, 6',
self.fake_root_dir, [], 0, 0, '')
self.assertEquals(['1', '2', '3'], change.BugsFromDescription())
self.assertEquals('1,2,3', change.BUG)
self.assertEquals(['1', '2', '3', '6'], change.BugsFromDescription())
self.assertEquals('1,2,3,6', change.BUG)
def testBugsFromDescription_MultipleFooters(self):
change = presubmit.Change(
'', 'foo\n\nChange-Id: asdf\nBug: 1\nBug:4, 6',
self.fake_root_dir, [], 0, 0, '')
self.assertEquals(['1', '4', '6'], change.BugsFromDescription())
self.assertEquals('1,4,6', change.BUG)
def testReviewersFromDescription(self):
change = presubmit.Change(
......
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