[PATCH v2 08/10] parser: Correct empty email value check
Stephen Finucane
stephenfinucane at hotmail.com
Mon Aug 22 04:09:08 AEST 2016
From: Stephen Finucane <stephen.finucane at intel.com>
The check for empty emails in 'find_author' checked for None, but it
was not possible to ever return None unless the 'From:' header was
missing altogether. Seeing as, per RFC822 and its revisions, this is
not possible, check for the empty string instead.
Signed-off-by: Stephen Finucane <stephen.finucane at intel.com>
Reviewed-by: Andy Doan <andy.doan at linaro.org>
---
patchwork/parser.py | 4 +++-
patchwork/tests/test_parser.py | 5 +++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/patchwork/parser.py b/patchwork/parser.py
index cadfe74..1805df8 100644
--- a/patchwork/parser.py
+++ b/patchwork/parser.py
@@ -107,6 +107,8 @@ def find_author(mail):
# tuple of (regex, fn)
# - where fn returns a (name, email) tuple from the match groups resulting
# from re.match().groups()
+ # TODO(stephenfin): Perhaps we should check for "real" email addresses
+ # instead of anything ('.*?')
from_res = [
# for "Firstname Lastname" <example at example.com> style addresses
(re.compile(r'"?(.*?)"?\s*<([^>]+)>'), (lambda g: (g[0], g[1]))),
@@ -128,7 +130,7 @@ def find_author(mail):
(name, email) = fn(match.groups())
break
- if email is None:
+ if not email:
raise ValueError("Invalid 'From' header")
email = email.strip()
diff --git a/patchwork/tests/test_parser.py b/patchwork/tests/test_parser.py
index 3ca049b..7b5c71b 100644
--- a/patchwork/tests/test_parser.py
+++ b/patchwork/tests/test_parser.py
@@ -228,6 +228,11 @@ class SenderEncodingTest(TestCase):
db_person = Person.objects.get(email=sender_email)
self.assertEqual(person, db_person)
+ def test_empty(self):
+ email = self._create_email('')
+ with self.assertRaises(ValueError):
+ find_author(email)
+
def test_ascii_encoding(self):
from_header = 'example user <user at example.com>'
sender_name = u'example user'
--
2.7.4
More information about the Patchwork
mailing list