]> granicus.if.org Git - python/commitdiff
test_nested_inner_contains_outer_boundary(), test_nested_with_same_boundary():
authorBarry Warsaw <barry@python.org>
Thu, 13 May 2004 20:15:20 +0000 (20:15 +0000)
committerBarry Warsaw <barry@python.org>
Thu, 13 May 2004 20:15:20 +0000 (20:15 +0000)
Two evil samples from Anthony's MIME torture tests.

Lib/email/test/test_email.py

index bd2796026da45c4b78af470069ab32fe3dd8fb54..59163f4fccd09dfd1165ea2109f01825cb30a784 100644 (file)
@@ -1325,6 +1325,42 @@ hello world
         msg = self._msgobj('msg_37.txt')
         self.assertEqual(len(msg.get_payload()), 3)
 
+    def test_nested_inner_contains_outer_boundary(self):
+        eq = self.ndiffAssertEqual
+        # msg_38.txt has an inner part that contains outer boundaries.  My
+        # interpretation of RFC 2046 (based on sections 5.1 and 5.1.2) say
+        # these are illegal and should be interpreted as unterminated inner
+        # parts.
+        msg = self._msgobj('msg_38.txt')
+        sfp = StringIO()
+        Iterators._structure(msg, sfp)
+        eq(sfp.getvalue(), """\
+multipart/mixed
+    multipart/mixed
+        multipart/alternative
+            text/plain
+        text/plain
+    text/plain
+    text/plain
+""")
+
+    def test_nested_with_same_boundary(self):
+        eq = self.ndiffAssertEqual
+        # msg 39.txt is similarly evil in that it's got inner parts that use
+        # the same boundary as outer parts.  Again, I believe the way this is
+        # parsed is closest to the spirit of RFC 2046
+        msg = self._msgobj('msg_39.txt')
+        sfp = StringIO()
+        Iterators._structure(msg, sfp)
+        eq(sfp.getvalue(), """\
+multipart/mixed
+    multipart/mixed
+        multipart/alternative
+        application/octet-stream
+        application/octet-stream
+    text/plain
+""")
+
 
 \f
 # Test some badly formatted messages