Skip to content

Commit 840a3bd

Browse files
authored
Merge pull request mjs#244 from mlorant/master
Fix mjs#242: handle address without mailbox name or host in Address namedtuple
2 parents 9e82aa8 + 3d56a64 commit 840a3bd

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

imapclient/response_types.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,12 @@ class Address(namedtuple("Address", "name route mailbox host")):
8080
"""
8181

8282
def __str__(self):
83-
return formataddr((
84-
to_unicode(self.name),
85-
to_unicode(self.mailbox) + '@' + to_unicode(self.host)))
83+
if self.mailbox and self.host:
84+
address = to_unicode(self.mailbox) + '@' + to_unicode(self.host)
85+
else:
86+
address = to_unicode(self.mailbox or self.host)
87+
88+
return formataddr((to_unicode(self.name), address))
8689

8790

8891
class SearchIds(list):

imapclient/test/test_response_parser.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,12 @@ def test_Address_str(self):
491491
self.assertEqual(str(Address("Mary Jane", None, "mary", "jane.org")),
492492
"Mary Jane <[email protected]>")
493493

494+
self.assertEqual(str(Address("Anonymous", None, "undisclosed-recipients", None)),
495+
"Anonymous <undisclosed-recipients>")
496+
497+
self.assertEqual(str(Address(None, None, None, "undisclosed-recipients")),
498+
"undisclosed-recipients")
499+
494500

495501

496502
def add_crlf(text):

0 commit comments

Comments
 (0)