Commit 0a8d4d57 authored by Barry Warsaw's avatar Barry Warsaw

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.
parent 6cf09f07
......@@ -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.
......
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment