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.
This commit is contained in:
Barry Warsaw 2002-05-21 19:46:13 +00:00
parent 6cf09f0792
commit 0a8d4d5736
2 changed files with 21 additions and 2 deletions

View File

@ -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.

View File

@ -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)