From 3328136e3ccc89da6f042d1e58e2277d71b34855 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Tue, 20 Aug 2002 14:51:10 +0000 Subject: Added tests for SF patch #597593, syntactically invalid Content-Type: headers. --- Lib/email/test/test_email.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py index 4c84fe1..2259571 100644 --- a/Lib/email/test/test_email.py +++ b/Lib/email/test/test_email.py @@ -428,12 +428,12 @@ class TestMessageAPI(TestEmailBase): def test_get_content_maintype_error(self): msg = Message() msg['Content-Type'] = 'no-slash-in-this-string' - self.assertRaises(ValueError, msg.get_content_maintype) + self.assertEqual(msg.get_content_maintype(), 'text') def test_get_content_subtype_error(self): msg = Message() msg['Content-Type'] = 'no-slash-in-this-string' - self.assertRaises(ValueError, msg.get_content_subtype) + self.assertEqual(msg.get_content_subtype(), 'plain') @@ -1007,6 +1007,27 @@ class TestNonConformant(TestEmailBase): finally: fp.close() + def test_invalid_content_type(self): + eq = self.assertEqual + neq = self.ndiffAssertEqual + msg = Message() + # RFC 2045, $5.2 says invalid yields text/plain + msg['Content-Type'] = 'text' + eq(msg.get_content_maintype(), 'text') + eq(msg.get_content_subtype(), 'plain') + eq(msg.get_content_type(), 'text/plain') + # Clear the old value and try something /really/ invalid + del msg['content-type'] + msg['Content-Type'] = 'foo' + eq(msg.get_content_maintype(), 'text') + eq(msg.get_content_subtype(), 'plain') + eq(msg.get_content_type(), 'text/plain') + # Still, make sure that the message is idempotently generated + s = StringIO() + g = Generator(s) + g.flatten(msg) + neq(s.getvalue(), 'Content-Type: foo\n\n') + # Test RFC 2047 header encoding and decoding -- cgit v0.12