]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
parsemail: Extract prefixes from subject
authorDamien Lespiau <damien.lespiau@intel.com>
Thu, 22 May 2014 17:03:13 +0000 (18:03 +0100)
committerStephen Finucane <stephen.finucane@intel.com>
Thu, 14 Apr 2016 16:29:02 +0000 (17:29 +0100)
The patch is a preparation step towards understanding series. It will be
handy to parse those prefixes, looking for 'x/n' to retrieve the order
of a patch in a series.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
patchwork/bin/parsemail.py
patchwork/tests/test_patchparser.py

index 3c5ca3751a404d3cc1eb31745f87dfe9420d89ba..f405f6bb97a6e6ccd0eaa802391a9a2099669c60 100755 (executable)
@@ -256,7 +256,8 @@ def find_content(project, mail):
         filenames = patch_get_filenames(patchbuf)
 
     if pullurl or patchbuf:
-        name = clean_subject(mail.get('Subject'), [project.linkname])
+        name, prefixes = clean_subject(mail.get('Subject'),
+                                       [project.linkname])
         patch = Patch(name=name, pull_url=pullurl, diff=patchbuf,
                       content=clean_content(commentbuf), date=mail_date(mail),
                       headers=mail_headers(mail))
@@ -362,7 +363,7 @@ def clean_subject(subject, drop_prefixes=None):
     if prefixes:
         subject = '[%s] %s' % (','.join(prefixes), subject)
 
-    return subject
+    return (subject, prefixes)
 
 
 def clean_content(content):
index 760341c6e0ec888de2aba98f801c7712bd6a8909..06a2598bc2f9f07eaf0392d5ad2879461f0ff585 100644 (file)
@@ -648,26 +648,30 @@ class PrefixTest(TestCase):
 class SubjectTest(TestCase):
 
     def testCleanSubject(self):
-        self.assertEqual(clean_subject('meep'), 'meep')
-        self.assertEqual(clean_subject('Re: meep'), 'meep')
-        self.assertEqual(clean_subject('[PATCH] meep'), 'meep')
-        self.assertEqual(clean_subject('[PATCH] meep \n meep'), 'meep meep')
-        self.assertEqual(clean_subject('[PATCH RFC] meep'), '[RFC] meep')
-        self.assertEqual(clean_subject('[PATCH,RFC] meep'), '[RFC] meep')
-        self.assertEqual(clean_subject('[PATCH,1/2] meep'), '[1/2] meep')
+        self.assertEqual(clean_subject('meep'), ('meep', []))
+        self.assertEqual(clean_subject('Re: meep'), ('meep', []))
+        self.assertEqual(clean_subject('[PATCH] meep'), ('meep', []))
+        self.assertEqual(clean_subject("[PATCH] meep \n meep"),
+                         ('meep meep', []))
+        self.assertEqual(clean_subject('[PATCH RFC] meep'),
+                         ('[RFC] meep', ['RFC']))
+        self.assertEqual(clean_subject('[PATCH,RFC] meep'),
+                         ('[RFC] meep', ['RFC']))
+        self.assertEqual(clean_subject('[PATCH,1/2] meep'),
+                         ('[1/2] meep', ['1/2']))
         self.assertEqual(clean_subject('[PATCH RFC 1/2] meep'),
-                         '[RFC,1/2] meep')
+                         ('[RFC,1/2] meep', ['RFC', '1/2']))
         self.assertEqual(clean_subject('[PATCH] [RFC] meep'),
-                         '[RFC] meep')
+                         ('[RFC] meep', ['RFC']))
         self.assertEqual(clean_subject('[PATCH] [RFC,1/2] meep'),
-                         '[RFC,1/2] meep')
+                         ('[RFC,1/2] meep', ['RFC', '1/2']))
         self.assertEqual(clean_subject('[PATCH] [RFC] [1/2] meep'),
-                         '[RFC,1/2] meep')
+                         ('[RFC,1/2] meep', ['RFC', '1/2']))
         self.assertEqual(clean_subject('[PATCH] rewrite [a-z] regexes'),
-                         'rewrite [a-z] regexes')
+                         ('rewrite [a-z] regexes', []))
         self.assertEqual(clean_subject('[PATCH] [RFC] rewrite [a-z] regexes'),
-                         '[RFC] rewrite [a-z] regexes')
+                         ('[RFC] rewrite [a-z] regexes', ['RFC']))
         self.assertEqual(clean_subject('[foo] [bar] meep', ['foo']),
-                         '[bar] meep')
+                         ('[bar] meep', ['bar']))
         self.assertEqual(clean_subject('[FOO] [bar] meep', ['foo']),
-                         '[bar] meep')
+                         ('[bar] meep', ['bar']))