]> granicus.if.org Git - python/commitdiff
Fixing some RFC 2231 related issues as reported in the Spambayes
authorBarry Warsaw <barry@python.org>
Thu, 26 Sep 2002 17:21:02 +0000 (17:21 +0000)
committerBarry Warsaw <barry@python.org>
Thu, 26 Sep 2002 17:21:02 +0000 (17:21 +0000)
project, and with assistance from Oleg Broytmann.  Specifically,
added some new tests to make sure we handle RFC 2231 encoded
parameters correctly.  Two new data files were added which contain RFC
2231 encoded parameters.

Lib/email/test/data/msg_32.txt [new file with mode: 0644]
Lib/email/test/data/msg_33.txt [new file with mode: 0644]
Lib/email/test/test_email.py

diff --git a/Lib/email/test/data/msg_32.txt b/Lib/email/test/data/msg_32.txt
new file mode 100644 (file)
index 0000000..07ec5af
--- /dev/null
@@ -0,0 +1,14 @@
+Delivered-To: freebsd-isp@freebsd.org
+Date: Tue, 26 Sep 2000 12:23:03 -0500
+From: Anne Person <aperson@example.com>
+To: Barney Dude <bdude@example.com>
+Subject: Re: Limiting Perl CPU Utilization...
+Mime-Version: 1.0
+Content-Type: text/plain; charset*=ansi-x3.4-1968''us-ascii
+Content-Disposition: inline
+User-Agent: Mutt/1.3.8i
+Sender: owner-freebsd-isp@FreeBSD.ORG
+Precedence: bulk
+X-Loop: FreeBSD.org
+
+Some message.
diff --git a/Lib/email/test/data/msg_33.txt b/Lib/email/test/data/msg_33.txt
new file mode 100644 (file)
index 0000000..042787a
--- /dev/null
@@ -0,0 +1,29 @@
+Delivered-To: freebsd-isp@freebsd.org
+Date: Wed, 27 Sep 2000 11:11:09 -0500
+From: Anne Person <aperson@example.com>
+To: Barney Dude <bdude@example.com>
+Subject: Re: Limiting Perl CPU Utilization...
+Mime-Version: 1.0
+Content-Type: multipart/signed; micalg*=ansi-x3.4-1968''pgp-md5;
+       protocol*=ansi-x3.4-1968''application%2Fpgp-signature;
+       boundary*="ansi-x3.4-1968''EeQfGwPcQSOJBaQU"
+Content-Disposition: inline
+Sender: owner-freebsd-isp@FreeBSD.ORG
+Precedence: bulk
+X-Loop: FreeBSD.org
+
+
+--EeQfGwPcQSOJBaQU
+Content-Type: text/plain; charset*=ansi-x3.4-1968''us-ascii
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+part 1
+
+--EeQfGwPcQSOJBaQU
+Content-Type: text/plain
+Content-Disposition: inline
+
+part 2
+
+--EeQfGwPcQSOJBaQU--
index 7df5fcc5874d4a98e2c840f31924968ba9189e9a..a63adc87d559e91020e5d6a0a6fbd862a01cd9d6 100644 (file)
@@ -1465,6 +1465,14 @@ class TestIdempotent(TestEmailBase):
         msg, text = self._msgobj('msg_31.txt')
         self._idempotent(msg, text)
 
+    def test_rfc2231_charset(self):
+        msg, text = self._msgobj('msg_32.txt')
+        self._idempotent(msg, text)
+
+    def test_more_rfc2231_parameters(self):
+        msg, text = self._msgobj('msg_33.txt')
+        self._idempotent(msg, text)
+
     def test_content_type(self):
         eq = self.assertEquals
         unless = self.failUnless
@@ -1514,6 +1522,7 @@ class TestIdempotent(TestEmailBase):
         self.failUnless(isinstance(msg1.get_payload(), StringType))
         eq(msg1.get_payload(), '\n')
 
+
 \f
 # Test various other bits of the package's functionality
 class TestMiscellaneous(unittest.TestCase):
@@ -2147,6 +2156,15 @@ A very long line that must get split to something other than at the
         h.append('hello', 'iso-8859-1')
         eq(h, '=?iso-8859-1?q?hello?=')
 
+    def test_unicode_error(self):
+        raises = self.assertRaises
+        raises(UnicodeError, Header, u'[P\xf6stal]', 'us-ascii')
+        raises(UnicodeError, Header, '[P\xf6stal]', 'us-ascii')
+        h = Header()
+        raises(UnicodeError, h.append, u'[P\xf6stal]', 'us-ascii')
+        raises(UnicodeError, h.append, '[P\xf6stal]', 'us-ascii')
+        raises(UnicodeError, Header, u'\u83ca\u5730\u6642\u592b', 'iso-8859-1')
+
 
 \f
 # Test RFC 2231 header parameters (en/de)coding
@@ -2226,6 +2244,11 @@ Do you like this message?
 -Me
 """)
 
+    def test_rfc2231_get_content_charset(self):
+        eq = self.assertEqual
+        msg = self._msgobj('msg_32.txt')
+        eq(msg.get_content_charset(), 'us-ascii')
+
 
 \f
 def _testclasses():