api/models.py | 6 +++++- mbox.py | 2 ++ tests/data/0036-patch-with-no-to-header.mbox.gz | Bin 0 -> 4783 bytes tests/test_import.py | 11 +++++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/data/0036-patch-with-no-to-header.mbox.gz
If the mbox has no To: field, we have an empty addr in the returned
address list. This is later used in Project.recognizes() as:
if addr in self.mailing_list:
...
Remove the empty result.
Also preprocess the mailing_list before matching.
Reported-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Fam Zheng <fam.zheng@bytedance.com>
---
api/models.py | 6 +++++-
mbox.py | 2 ++
tests/data/0036-patch-with-no-to-header.mbox.gz | Bin 0 -> 4783 bytes
tests/test_import.py | 11 +++++++++++
4 files changed, 18 insertions(+), 1 deletion(-)
create mode 100644 tests/data/0036-patch-with-no-to-header.mbox.gz
diff --git a/api/models.py b/api/models.py
index 5879466..18392b1 100644
--- a/api/models.py
+++ b/api/models.py
@@ -265,11 +265,15 @@ class Project(models.Model):
return True
return False
+ def get_mailing_lists(self):
+ r = self.mailing_list.split()
+ return [x.rstrip(',;') for x in r]
+
def recognizes(self, m):
"""Test if @m is considered a message in this project"""
addr_ok = False
for name, addr in m.get_to() + m.get_cc():
- if addr in self.mailing_list:
+ if addr in self.get_mailing_lists():
addr_ok = True
break
if addr_ok:
diff --git a/mbox.py b/mbox.py
index 20abca1..bcd3600 100644
--- a/mbox.py
+++ b/mbox.py
@@ -115,6 +115,8 @@ class MboxMessage(object):
addrs = email.utils.getaddresses(f)
for name, addr in addrs:
name = name or addr
+ if not addr:
+ continue
if text:
ret.append(_addr_fmt_text(name, addr))
else:
diff --git a/tests/data/0036-patch-with-no-to-header.mbox.gz b/tests/data/0036-patch-with-no-to-header.mbox.gz
new file mode 100644
index 0000000000000000000000000000000000000000..32a33915a9317151845bec80e3349b7de8064ac5
GIT binary patch
literal 4783
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
JuGBa;006i%C-VRR
literal 0
HcmV?d00001
diff --git a/tests/test_import.py b/tests/test_import.py
index af7830b..ec1ebc4 100755
--- a/tests/test_import.py
+++ b/tests/test_import.py
@@ -86,6 +86,17 @@ class ImportTest(PatchewTestCase):
)
self.check_cli(["search", "project:Libvirt-python"], stdout=subj)
+ def test_import_no_to_header(self):
+ self.add_project(
+ "Linux",
+ "linux-kernel@vger.kernel.org",
+ "https://github.com/torvalds/linux",
+ )
+ self.cli_import("0036-patch-with-no-to-header.mbox.gz")
+ a = "[PATCH] fpga: microsemi-spi: add Microsemi FPGA manager"
+ self.check_cli(["search", "project:Linux"], stdout=a.strip())
+ self.check_cli(["search", "project:QEMU"], stdout='')
+
class UnprivilegedImportTest(ImportTest):
def setUp(self):
--
2.25.1
_______________________________________________
Patchew-devel mailing list
Patchew-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/patchew-devel
On 2/15/22 11:36, Fam Zheng wrote: > If the mbox has no To: field, we have an empty addr in the returned > address list. This is later used in Project.recognizes() as: > > if addr in self.mailing_list: > ... > > Remove the empty result. > > Also preprocess the mailing_list before matching. > > Reported-by: Mat Martineau <mathew.j.martineau@linux.intel.com> > Signed-off-by: Fam Zheng <fam.zheng@bytedance.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> > --- > api/models.py | 6 +++++- > mbox.py | 2 ++ > tests/data/0036-patch-with-no-to-header.mbox.gz | Bin 0 -> 4783 bytes > tests/test_import.py | 11 +++++++++++ > 4 files changed, 18 insertions(+), 1 deletion(-) > create mode 100644 tests/data/0036-patch-with-no-to-header.mbox.gz > > diff --git a/api/models.py b/api/models.py > index 5879466..18392b1 100644 > --- a/api/models.py > +++ b/api/models.py > @@ -265,11 +265,15 @@ class Project(models.Model): > return True > return False > > + def get_mailing_lists(self): > + r = self.mailing_list.split() > + return [x.rstrip(',;') for x in r] > + > def recognizes(self, m): > """Test if @m is considered a message in this project""" > addr_ok = False > for name, addr in m.get_to() + m.get_cc(): > - if addr in self.mailing_list: > + if addr in self.get_mailing_lists(): > addr_ok = True > break > if addr_ok: > diff --git a/mbox.py b/mbox.py > index 20abca1..bcd3600 100644 > --- a/mbox.py > +++ b/mbox.py > @@ -115,6 +115,8 @@ class MboxMessage(object): > addrs = email.utils.getaddresses(f) > for name, addr in addrs: > name = name or addr > + if not addr: > + continue > if text: > ret.append(_addr_fmt_text(name, addr)) > else: > diff --git a/tests/data/0036-patch-with-no-to-header.mbox.gz b/tests/data/0036-patch-with-no-to-header.mbox.gz > new file mode 100644 > index 0000000000000000000000000000000000000000..32a33915a9317151845bec80e3349b7de8064ac5 > GIT binary patch > literal 4783 > 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 > JuGBa;006i%C-VRR > > literal 0 > HcmV?d00001 > > diff --git a/tests/test_import.py b/tests/test_import.py > index af7830b..ec1ebc4 100755 > --- a/tests/test_import.py > +++ b/tests/test_import.py > @@ -86,6 +86,17 @@ class ImportTest(PatchewTestCase): > ) > self.check_cli(["search", "project:Libvirt-python"], stdout=subj) > > + def test_import_no_to_header(self): > + self.add_project( > + "Linux", > + "linux-kernel@vger.kernel.org", > + "https://github.com/torvalds/linux", > + ) > + self.cli_import("0036-patch-with-no-to-header.mbox.gz") > + a = "[PATCH] fpga: microsemi-spi: add Microsemi FPGA manager" > + self.check_cli(["search", "project:Linux"], stdout=a.strip()) > + self.check_cli(["search", "project:QEMU"], stdout='') > + > > class UnprivilegedImportTest(ImportTest): > def setUp(self): _______________________________________________ Patchew-devel mailing list Patchew-devel@redhat.com https://listman.redhat.com/mailman/listinfo/patchew-devel
© 2016 - 2023 Red Hat, Inc.