summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2002-05-21 19:46:13 +0000
committerBarry Warsaw <barry@python.org>2002-05-21 19:46:13 +0000
commit0a8d4d5736c8cceda74e7134a6ff446fbee1d5cc (patch)
treea4398880090f36d335aceb320098fb563c656b6d
parent6cf09f0792df49527cda241743a34c3555a83835 (diff)
downloadcpython-git-0a8d4d5736c8cceda74e7134a6ff446fbee1d5cc.tar.gz
Message.getaddrlist(): Use the AddressList.addresslist attribute
instead of calling the getaddrlist() method, since the latter doesn't work with multiple calls (it will return the empty list for the second and subsequent calls). Closes SF bug #555035. Include a unittest.
-rw-r--r--Lib/rfc822.py2
-rw-r--r--Lib/test/test_rfc822.py21
2 files changed, 21 insertions, 2 deletions
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index aa58f1889e..826269fe1a 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -352,7 +352,7 @@ class Message:
raw.append(addr)
alladdrs = ''.join(raw)
a = AddressList(alladdrs)
- return a.getaddrlist()
+ return a.addresslist
def getdate(self, name):
"""Retrieve a date field from a header.
diff --git a/Lib/test/test_rfc822.py b/Lib/test/test_rfc822.py
index 0244f0d818..dfce7c9151 100644
--- a/Lib/test/test_rfc822.py
+++ b/Lib/test/test_rfc822.py
@@ -185,7 +185,7 @@ class MessageTestCase(unittest.TestCase):
self.check('To: User J. Person <person@dom.ain>\n\n',
[('User J. Person', 'person@dom.ain')])
- # This takes to long to add to the test suite
+ # This takes too long to add to the test suite
## def test_an_excrutiatingly_long_address_field(self):
## OBSCENELY_LONG_HEADER_MULTIPLIER = 10000
## oneaddr = ('Person' * 10) + '@' + ('.'.join(['dom']*10)) + '.com'
@@ -193,6 +193,25 @@ class MessageTestCase(unittest.TestCase):
## lst = rfc822.AddrlistClass(addr).getaddrlist()
## self.assertEqual(len(lst), OBSCENELY_LONG_HEADER_MULTIPLIER)
+ def test_2getaddrlist(self):
+ eq = self.assertEqual
+ msg = self.create_message("""\
+To: aperson@dom.ain
+Cc: bperson@dom.ain
+Cc: cperson@dom.ain
+Cc: dperson@dom.ain
+
+A test message.
+""")
+ ccs = [('', a) for a in
+ ['bperson@dom.ain', 'cperson@dom.ain', 'dperson@dom.ain']]
+ addrs = msg.getaddrlist('cc')
+ addrs.sort()
+ eq(addrs, ccs)
+ # Try again, this one used to fail
+ addrs = msg.getaddrlist('cc')
+ addrs.sort()
+ eq(addrs, ccs)
def test_main():
test_support.run_unittest(MessageTestCase)