--- a/pylib/mozautomation/mozautomation/commitparser.py
+++ b/pylib/mozautomation/mozautomation/commitparser.py
@@ -120,16 +120,19 @@ def filter_reviewers(s):
if DIGIT_RE.match(word):
continue
yield word
def parse_reviewers(commit_description, flag_re=None):
+ if commit_description == '':
+ return
+
commit_summary = commit_description.splitlines().pop(0)
for match in re.finditer(REVIEWERS_RE, commit_summary):
if not match.group(3):
continue
for reviewer in re.split(LIST_RE, match.group(3)):
if flag_re is None:
yield reviewer
@@ -150,16 +153,19 @@ def parse_rquestion_reviewers(commit_des
def replace_reviewers(commit_description, reviewers):
if not reviewers:
reviewers_str = ''
else:
reviewers_str = 'r=' + ','.join(reviewers)
+ if commit_description == '':
+ return reviewers_str
+
commit_description = commit_description.splitlines()
commit_summary = commit_description.pop(0)
commit_description = '\n'.join(commit_description)
if not R_SPECIFIER_RE.search(commit_summary):
commit_summary += ' ' + reviewers_str
else:
# replace the first r? with the reviewer list, and all subsequent
--- a/pylib/mozautomation/tests/test_commitparser.py
+++ b/pylib/mozautomation/tests/test_commitparser.py
@@ -145,18 +145,19 @@ differs from that used to generate the h
self.assertEqual(list(parse_reviewers(
'Bug 1182996 - Fix and add missing namespace comments. rs=ehsan\n'
'run-clang-tidy.py \\\n'
'-checks=\'-*,llvm-namespace-comment\' \\\n'
'-header-filter=^/.../mozilla-central/.* \\\n'
'-fix')),
['ehsan'])
-
def test_requal_reviewers(self):
+ # empty
+ self.assertEqual(list(parse_requal_reviewers('')), [])
# first with r? reviewer request syntax
self.assertEqual(list(parse_requal_reviewers('Bug 1 - some stuff; r?romulus')), [])
self.assertEqual(list(parse_requal_reviewers('Bug 1 - More stuff; r?romulus, r?remus')), [])
self.assertEqual(list(parse_requal_reviewers('Bug 1 - More stuff; r?romulus,r?remus')), [])
self.assertEqual(list(parse_requal_reviewers('Bug 1 - More stuff; r?romulus, remus')), [])
self.assertEqual(list(parse_requal_reviewers('Bug 1 - More stuff; r?romulus,remus')), [])
self.assertEqual(list(parse_requal_reviewers('Bug 1 - More stuff; (r?romulus)')), [])
@@ -207,16 +208,18 @@ differs from that used to generate the h
'Fixing form test for date fields r=me\n')),
[])
self.assertEqual(list(parse_requal_reviewers(
'Bug 1024110 - Change Aurora\'s default profile behavior to use channel-specific profiles. r=bsmedberg f=gavin,markh')),
['bsmedberg'])
def test_rquestion_reviewers(self):
+ # empty
+ self.assertEqual(list(parse_rquestion_reviewers('')), [])
# first with r? reviewer request syntax
self.assertEqual(list(parse_rquestion_reviewers('Bug 1 - some stuff; r?romulus')), ['romulus'])
self.assertEqual(list(parse_rquestion_reviewers('Bug 1 - More stuff; r?romulus, r?remus')), ['romulus', 'remus'])
self.assertEqual(list(parse_rquestion_reviewers('Bug 1 - More stuff; r?romulus,r?remus')), ['romulus', 'remus'])
self.assertEqual(list(parse_rquestion_reviewers('Bug 1 - More stuff; r?romulus, remus')), ['romulus', 'remus'])
self.assertEqual(list(parse_rquestion_reviewers('Bug 1 - More stuff; r?romulus,remus')), ['romulus', 'remus'])
self.assertEqual(list(parse_rquestion_reviewers('Bug 1 - More stuff; (r?romulus)')), ['romulus'])
@@ -260,16 +263,19 @@ differs from that used to generate the h
'Fixing form test for date fields r=me\n')),
[])
self.assertEqual(list(parse_rquestion_reviewers(
'Bug 1024110 - Change Aurora\'s default profile behavior to use channel-specific profiles. r=bsmedberg f=gavin,markh')),
[])
def test_replace_reviewers(self):
+ # empty
+ self.assertEqual(replace_reviewers('', ['remus']), 'r=remus')
+
# first with r? reviewer request syntax
self.assertEqual(replace_reviewers('Bug 1 - some stuff; r?romulus', ['remus']), 'Bug 1 - some stuff; r=remus')
self.assertEqual(replace_reviewers('Bug 1 - More stuff; r?romulus, r?remus', ['remus']), 'Bug 1 - More stuff; r=remus')
self.assertEqual(replace_reviewers('Bug 1 - More stuff; r?romulus,r?remus', ['remus']), 'Bug 1 - More stuff; r=remus')
self.assertEqual(replace_reviewers('Bug 1 - More stuff; r?romulus, remus', ['remus']), 'Bug 1 - More stuff; r=remus')
self.assertEqual(replace_reviewers('Bug 1 - More stuff; r?romulus,remus', ['remus']), 'Bug 1 - More stuff; r=remus')
self.assertEqual(replace_reviewers('Bug 1 - More stuff; (r?romulus)', ['remus']), 'Bug 1 - More stuff; (r=remus)')
self.assertEqual(replace_reviewers('Bug 1 - More stuff; (r?romulus,remus)', ['remus']), 'Bug 1 - More stuff; (r=remus)')