mozautomation: detect requestee-less review flags (Bug 1320251); r?gps draft
authorbyron jones <glob@mozilla.com>
Fri, 25 Nov 2016 14:16:37 +0800
changeset 9974 701213ccaff6c7ce54ac028a5150838cd33372fe
parent 9972 6298a219559813f9df82141f84b3079cf5236191
push id1399
push userbjones@mozilla.com
push dateFri, 25 Nov 2016 06:18:43 +0000
reviewersgps
bugs1320251
mozautomation: detect requestee-less review flags (Bug 1320251); r?gps Commit descriptions containing review flags without a requestee (eg. "r?") were not being rewritten with reviewers prior to landing with autoland. MozReview-Commit-ID: 7dsCOV3YzT4
pylib/mozautomation/mozautomation/commitparser.py
pylib/mozautomation/tests/test_commitparser.py
--- a/pylib/mozautomation/mozautomation/commitparser.py
+++ b/pylib/mozautomation/mozautomation/commitparser.py
@@ -43,17 +43,17 @@ REVIEWERS_RE = re.compile(
     r'(' + SPECIFIER + r')' +           # flag
     r'(' +                              # capture all reviewers
         IRC_NICK +                      # reviewer
         r'(?:' +                        # additional reviewers
             LIST +                      # delimiter
             r'(?![a-z0-9\.\-]+[=?])' +  # don't extend match into next flag
             IRC_NICK +                  # reviewer
         r')*' +
-    r')')                               # noqa
+    r')?')                              # noqa
 
 BACKED_OUT_RE = re.compile('^backed out changeset (?P<node>[0-9a-f]{12}) ',
                            re.I)
 
 BACKOUT_RE = re.compile('^back\s?out (?P<node>[0-9a-f]{12}) ', re.I)
 
 SHORT_RE = re.compile('^[0-9a-f]{12}$', re.I)
 
--- a/pylib/mozautomation/tests/test_commitparser.py
+++ b/pylib/mozautomation/tests/test_commitparser.py
@@ -320,16 +320,19 @@ differs from that used to generate the h
             'Bug 1 - blah r?dminor,r?gps,r?abc,sr=abc',
             ['dminor', 'glob', 'gps', 'abc']),
             'Bug 1 - blah r=dminor,glob,gps,abc,sr=abc')
 
         self.assertEqual(replace_reviewers('Bug 123 - Blah blah; r=gps DONTBUILD (NPOTB)', ['remus']), 'Bug 123 - Blah blah; r=remus DONTBUILD (NPOTB)')
         self.assertEqual(replace_reviewers('Bug 123 - Blah blah; r=gps DONTBUILD', ['remus']), 'Bug 123 - Blah blah; r=remus DONTBUILD')
         self.assertEqual(replace_reviewers('Bug 123 - Blah blah; r=gps (DONTBUILD)', ['remus']), 'Bug 123 - Blah blah; r=remus (DONTBUILD)')
 
+        self.assertEqual(replace_reviewers('Bug 123 - Blah blah; r?', ['remus']), 'Bug 123 - Blah blah; r=remus')
+        self.assertEqual(replace_reviewers('Bug 123 - Blah blah; r? DONTBUILD', ['remus']), 'Bug 123 - Blah blah; r=remus DONTBUILD')
+
 
     def test_backout_missing(self):
         self.assertIsNone(parse_backouts('Bug 1 - More stuff; r=romulus'))
 
     def test_backout_single(self):
         self.assertEqual(
             parse_backouts('Backed out changeset 6435d5aab611 (bug 858680)'),
             (['6435d5aab611'], [858680]))