aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ryabitsev <konstantin@linuxfoundation.org>2024-01-02 09:46:46 -0500
committerKonstantin Ryabitsev <konstantin@linuxfoundation.org>2024-01-02 09:54:28 -0500
commit2aabd4466910f41b3a3b1dbf2f1010a6dcbfb3d9 (patch)
tree86004f0383e0efb7d56d16595c4e083597ed3a98
parentdc5db32ade42b8ba58366a6d0568016e38e51934 (diff)
downloadb4-stable-0.12.y.tar.gz
Properly write out bare-address trailersstable-0.12.y
Not all trailers will have both a name and address, specifically not the Cc: trailer that sends to a list. Fixes: 26615095533f ("trailers: do not quote names when special chars are present") Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
-rw-r--r--b4/__init__.py5
-rw-r--r--tests/samples/trailers-followup-bare-address-ref-defaults.txt34
-rw-r--r--tests/samples/trailers-followup-bare-address.mbox79
-rw-r--r--tests/test___init__.py1
4 files changed, 118 insertions, 1 deletions
diff --git a/b4/__init__.py b/b4/__init__.py
index 9fb4e28..d3f28ee 100644
--- a/b4/__init__.py
+++ b/b4/__init__.py
@@ -888,7 +888,10 @@ class LoreTrailer:
self.type = 'person'
self.addr = email.utils.parseaddr(value)
# Normalize the value with parsed data
- self.value = f'{self.addr[0]} <{self.addr[1]}>'
+ if self.addr[0]:
+ self.value = f'{self.addr[0]} <{self.addr[1]}>'
+ else:
+ self.value = self.addr[1]
else:
self.type = 'unknown'
self.lname = self.name.lower()
diff --git a/tests/samples/trailers-followup-bare-address-ref-defaults.txt b/tests/samples/trailers-followup-bare-address-ref-defaults.txt
new file mode 100644
index 0000000..4524080
--- /dev/null
+++ b/tests/samples/trailers-followup-bare-address-ref-defaults.txt
@@ -0,0 +1,34 @@
+From git@z Thu Jan 1 00:00:00 1970
+Subject: [PATCH] Simple test
+From: Test Test <test@example.com>
+Date: Tue, 30 Aug 2022 11:19:07 -0400
+Message-Id: <orig-message@example.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+
+Follow-up trailer collating test.
+
+Fixes: abcdef01234567890
+Cc: bare-address@example.org
+Reviewed-by: Original Reviewer <original-reviewer@example.com>
+Link: https://msgid.link/some@msgid.here
+Signed-off-by: Original Submitter <original-submitter@example.com>
+Reviewed-by: Followup Reviewer1 (corporate) <followup-reviewer1@example.com>
+Tested-by: Followup Reviewer2 <followup-reviewer2@example.com>
+---
+
+diff --git a/b4/junk.py b/b4/junk.py
+index 12345678..23456789 100644
+--- a/b4/junk.py
++++ b/b4/junk.py
+@@@ -1,1 +1,1 @@ def junk():
+
+
+-junk1
++junk2
+
+
+--
+2.wong.fu
+
diff --git a/tests/samples/trailers-followup-bare-address.mbox b/tests/samples/trailers-followup-bare-address.mbox
new file mode 100644
index 0000000..8f5bbb8
--- /dev/null
+++ b/tests/samples/trailers-followup-bare-address.mbox
@@ -0,0 +1,79 @@
+From foo@z Thu Jan 1 00:00:00 1970
+From: Test Test <test@example.com>
+Subject: [PATCH] Simple test
+To: Some List <list-1@lists.example.com>
+Cc: Dev Eloper1 <dev-eloper1@example.com>,
+ Dev Eloper2 <dev-eloper2@example.com>
+Date: Tue, 30 Aug 2022 11:19:07 -0400
+Message-Id: <orig-message@example.com>
+
+Follow-up trailer collating test.
+
+Fixes: abcdef01234567890
+Cc: bare-address@example.org
+Reviewed-by: Original Reviewer <original-reviewer@example.com>
+Link: https://msgid.link/some@msgid.here
+Signed-off-by: Original Submitter <original-submitter@example.com>
+---
+
+diff --git a/b4/junk.py b/b4/junk.py
+index 12345678..23456789 100644
+--- a/b4/junk.py
++++ b/b4/junk.py
+@@@ -1,1 +1,1 @@ def junk():
+
+
+-junk1
++junk2
+
+
+--
+2.wong.fu
+
+From foo@z Thu Jan 1 00:00:00 1970
+From: Followup Reviewer1 <followup-reviewer1@example.com>
+Subject: Re: [PATCH] Simple test
+Date: Tue, 30 Aug 2022 11:19:07 -0400
+Message-Id: <fwup-message-1@example.com>
+In-Reply-To: <orig-message@example.com>
+References: <orig-message@example.com>
+
+> This is a simple trailer parsing test.
+
+Reviewed-by: Followup Reviewer1 (corporate) <followup-reviewer1@example.com>
+
+--
+My sig
+
+From foo@z Thu Jan 1 00:00:00 1970
+From: Followup Reviewer2 <followup-reviewer2@example.com>
+Subject: Re: [PATCH] Simple test
+Date: Tue, 30 Aug 2022 11:19:07 -0400
+Message-Id: <fwup-message-2@example.com>
+In-Reply-To: <fwup-message-1@example.com>
+References: <orig-message@example.com> <fwup-message-1@example.com>
+
+>> This is a simple trailer parsing test.
+>
+> Reviewed-by: Followup Reviewer1 <reviewer1@example.com>
+
+Tested-by: Followup Reviewer2 <followup-reviewer2@example.com>
+
+--
+My sig
+
+From foo@z Thu Jan 1 00:00:00 1970
+From: Mismatched Reviewer <mismatched-reviewer1@example.com>
+Subject: Re: [PATCH] Simple test
+Date: Tue, 30 Aug 2022 11:19:07 -0400
+Message-Id: <fwup-message-3@example.com>
+In-Reply-To: <orig-message@example.com>
+References: <orig-message@example.com>
+
+> This is a simple trailer parsing test.
+
+Reviewed-by: Mismatched Reviewer1 <mismatched-reviewer1@example.net>
+
+--
+My sig
+
diff --git a/tests/test___init__.py b/tests/test___init__.py
index 14e3c8f..4806b63 100644
--- a/tests/test___init__.py
+++ b/tests/test___init__.py
@@ -100,6 +100,7 @@ def test_parse_trailers(sampledir, source, expected):
('partial-reroll', {}, {'addmysob': True}, 'defaults', {}),
('nore', {}, {}, 'defaults', {}),
('name-parens', {}, {}, 'defaults', {}),
+ ('bare-address', {}, {}, 'defaults', {}),
])
def test_followup_trailers(sampledir, source, serargs, amargs, reference, b4cfg):
b4.MAIN_CONFIG.update(b4cfg)