]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-27513: email.utils.getaddresses() now handles Header objects (GH-13797) (#27245)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 19 Jul 2021 17:28:56 +0000 (10:28 -0700)
committerGitHub <noreply@github.com>
Mon, 19 Jul 2021 17:28:56 +0000 (19:28 +0200)
getaddresses() should be able to handle a Header object if passed
one.

Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
(cherry picked from commit 89f4c34797de2f0e5045da2b97c1c8cbbb42fbb2)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Lib/email/utils.py
Lib/test/test_email/test_email.py
Misc/NEWS.d/next/Library/2019-06-03-23-53-25.bpo-27513.qITN7d.rst [new file with mode: 0644]

index 1a7719dbc4898fc328a9b8e792d1d4a603783f77..48d30160aa6ea01d41bde0df60815fa52bd2ffa2 100644 (file)
@@ -109,7 +109,7 @@ def formataddr(pair, charset='utf-8'):
 
 def getaddresses(fieldvalues):
     """Return a list of (REALNAME, EMAIL) for each fieldvalue."""
-    all = COMMASPACE.join(fieldvalues)
+    all = COMMASPACE.join(str(v) for v in fieldvalues)
     a = _AddressList(all)
     return a.addresslist
 
index ab68cdd8b5aed19ade09d347ad03565191ff40ed..0421055ccfde9d7227ffbfea8c01ace99f4cbc76 100644 (file)
@@ -3262,6 +3262,11 @@ Foo
         addrs = utils.getaddresses(['User ((nested comment)) <foo@bar.com>'])
         eq(addrs[0][1], 'foo@bar.com')
 
+    def test_getaddresses_header_obj(self):
+        """Test the handling of a Header object."""
+        addrs = utils.getaddresses([Header('Al Person <aperson@dom.ain>')])
+        self.assertEqual(addrs[0][1], 'aperson@dom.ain')
+
     def test_make_msgid_collisions(self):
         # Test make_msgid uniqueness, even with multiple threads
         class MsgidsThread(Thread):
diff --git a/Misc/NEWS.d/next/Library/2019-06-03-23-53-25.bpo-27513.qITN7d.rst b/Misc/NEWS.d/next/Library/2019-06-03-23-53-25.bpo-27513.qITN7d.rst
new file mode 100644 (file)
index 0000000..90d49bb
--- /dev/null
@@ -0,0 +1,3 @@
+:func:`email.utils.getaddresses` now accepts
+:class:`email.header.Header` objects along with string values.
+Patch by Zackery Spytz.