diff options
author | Raymond Hettinger <python@rcn.com> | 2004-09-22 17:17:32 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2004-09-22 17:17:32 (GMT) |
commit | ce96d8b6846f5658018923efcb8a5810bbb0bfb7 (patch) | |
tree | a3aa2a928e6ece056cd4c4c2ba897767e7257f64 | |
parent | c6646c097aceec4b4ee64968e875b508e908e9f4 (diff) | |
download | cpython-ce96d8b6846f5658018923efcb8a5810bbb0bfb7.zip cpython-ce96d8b6846f5658018923efcb8a5810bbb0bfb7.tar.gz cpython-ce96d8b6846f5658018923efcb8a5810bbb0bfb7.tar.bz2 |
Bug #1030125: rfc822 __iter__ problem
Add iteration support to the Message class.
-rw-r--r-- | Lib/rfc822.py | 3 | ||||
-rw-r--r-- | Lib/test/test_rfc822.py | 11 | ||||
-rw-r--r-- | Misc/NEWS | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/Lib/rfc822.py b/Lib/rfc822.py index 3b4246d..18277d6 100644 --- a/Lib/rfc822.py +++ b/Lib/rfc822.py @@ -444,6 +444,9 @@ class Message: """Determine whether a message contains the named header.""" return name.lower() in self.dict + def __iter__(self): + return iter(self.dict) + def keys(self): """Get all of a message's header field names.""" return self.dict.keys() diff --git a/Lib/test/test_rfc822.py b/Lib/test/test_rfc822.py index 491bc8a..0d9f28a 100644 --- a/Lib/test/test_rfc822.py +++ b/Lib/test/test_rfc822.py @@ -176,6 +176,17 @@ class MessageTestCase(unittest.TestCase): 'foo', [('', 'guido@[132.151.1.21]')]) + def test_iter(self): + m = rfc822.Message(StringIO( + 'Date: Wed, 13 Jan 1999 23:57:35 -0500\n' + 'From: Guido van Rossum <guido@CNRI.Reston.VA.US>\n' + 'To: "Guido van\n' + '\t : Rossum" <guido@python.org>\n' + 'Subject: test2\n' + '\n' + 'test2\n' )) + self.assertEqual(sorted(m), ['date', 'from', 'subject', 'to']) + def test_rfc2822_phrases(self): # RFC 2822 (the update to RFC 822) specifies that dots in phrases are # obsolete syntax, which conforming programs MUST recognize but NEVER @@ -21,6 +21,7 @@ Extension modules Library ------- +- rfc822 Messages now support iteration. - The (undocumented) tarfile.Tarfile.membernames has been removed; applications should use the getmember function. |