]> granicus.if.org Git - python/commitdiff
Message.getaddrlist(): Use the AddressList.addresslist attribute
authorBarry Warsaw <barry@python.org>
Tue, 21 May 2002 19:46:13 +0000 (19:46 +0000)
committerBarry Warsaw <barry@python.org>
Tue, 21 May 2002 19:46:13 +0000 (19:46 +0000)
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.

Lib/rfc822.py
Lib/test/test_rfc822.py

index aa58f1889ef701e5aa1f19c5d553e61c3d3251be..826269fe1a15790828d068aec6a39504618c619f 100644 (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.
index 0244f0d818350079c028b672a40f1826a41432cc..dfce7c915121f07cdede531bb61f1918160ae50b 100644 (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)