Skip to content

Commit bf600e1

Browse files
ZackerySpytzambv
authored andcommitted
bpo-27513: email.utils.getaddresses() now handles Header objects
getaddresses() should be able to handle a Header object if passed one.
1 parent fbf1008 commit bf600e1

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

Lib/email/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def formataddr(pair, charset='utf-8'):
109109

110110
def getaddresses(fieldvalues):
111111
"""Return a list of (REALNAME, EMAIL) for each fieldvalue."""
112-
all = COMMASPACE.join(fieldvalues)
112+
all = COMMASPACE.join(str(v) for v in fieldvalues)
113113
a = _AddressList(all)
114114
return a.addresslist
115115

Lib/test/test_email/test_email.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3263,6 +3263,12 @@ def test_getaddresses_embedded_comment(self):
32633263
addrs = utils.getaddresses(['User ((nested comment)) <[email protected]>'])
32643264
eq(addrs[0][1], '[email protected]')
32653265

3266+
def test_getaddresses_header_obj(self):
3267+
"""Test the handling of a Header object."""
3268+
eq = self.assertEqual
3269+
addrs = utils.getaddresses([Header('Al Person <[email protected]>')])
3270+
eq(addrs[0][1], '[email protected]')
3271+
32663272
def test_make_msgid_collisions(self):
32673273
# Test make_msgid uniqueness, even with multiple threads
32683274
class MsgidsThread(Thread):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
:func:`email.charset.getaddresses` can now handle
2+
:class:`~email.header.Header` objects.

0 commit comments

Comments
 (0)