[Python-checkins] cpython (merge 3.3 -> default): Merge: #14983: always add a line end after a MIME boundary marker.

r.david.murray python-checkins at python.org
Sat Feb 8 23:56:40 CET 2014


http://hg.python.org/cpython/rev/7486c45eb53f
changeset:   89069:7486c45eb53f
parent:      89066:7fc1e8095fb8
parent:      89068:c2538789c8cf
user:        R David Murray <rdmurray at bitdance.com>
date:        Sat Feb 08 17:56:17 2014 -0500
summary:
  Merge: #14983: always add a line end after a MIME boundary marker.

files:
  Lib/email/generator.py              |   3 +--
  Lib/test/test_email/data/msg_02.txt |   1 +
  Lib/test/test_email/test_email.py   |  15 ++++++++++-----
  Misc/NEWS                           |   4 ++++
  4 files changed, 16 insertions(+), 7 deletions(-)


diff --git a/Lib/email/generator.py b/Lib/email/generator.py
--- a/Lib/email/generator.py
+++ b/Lib/email/generator.py
@@ -299,9 +299,8 @@
             # body-part
             self._fp.write(body_part)
         # close-delimiter transport-padding
-        self.write(self._NL + '--' + boundary + '--')
+        self.write(self._NL + '--' + boundary + '--' + self._NL)
         if msg.epilogue is not None:
-            self.write(self._NL)
             if self._mangle_from_:
                 epilogue = fcre.sub('>From ', msg.epilogue)
             else:
diff --git a/Lib/test/test_email/data/msg_02.txt b/Lib/test/test_email/data/msg_02.txt
--- a/Lib/test/test_email/data/msg_02.txt
+++ b/Lib/test/test_email/data/msg_02.txt
@@ -119,6 +119,7 @@
 
 
 --__--__----
+
 --192.168.1.2.889.32614.987812255.500.21814
 Content-type: text/plain; charset=us-ascii
 Content-description: Digest Footer
diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py
--- a/Lib/test/test_email/test_email.py
+++ b/Lib/test/test_email/test_email.py
@@ -1745,7 +1745,8 @@
 
 --BOUNDARY
 
---BOUNDARY--''')
+--BOUNDARY--
+''')
 
     def test_no_parts_in_a_multipart_with_empty_epilogue(self):
         outer = MIMEBase('multipart', 'mixed')
@@ -1790,7 +1791,8 @@
 Content-Transfer-Encoding: 7bit
 
 hello world
---BOUNDARY--''')
+--BOUNDARY--
+''')
 
     def test_seq_parts_in_a_multipart_with_empty_preamble(self):
         eq = self.ndiffAssertEqual
@@ -1816,7 +1818,8 @@
 Content-Transfer-Encoding: 7bit
 
 hello world
---BOUNDARY--''')
+--BOUNDARY--
+''')
 
 
     def test_seq_parts_in_a_multipart_with_none_preamble(self):
@@ -1842,7 +1845,8 @@
 Content-Transfer-Encoding: 7bit
 
 hello world
---BOUNDARY--''')
+--BOUNDARY--
+''')
 
 
     def test_seq_parts_in_a_multipart_with_none_epilogue(self):
@@ -1868,7 +1872,8 @@
 Content-Transfer-Encoding: 7bit
 
 hello world
---BOUNDARY--''')
+--BOUNDARY--
+''')
 
 
     def test_seq_parts_in_a_multipart_with_empty_epilogue(self):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,10 @@
 Library
 -------
 
+- Issue #14983: email.generator now always adds a line end after each MIME
+  boundary marker, instead of doing so only when there is an epilogue.  This
+  fixes an RFC compliance bug and solves an issue with signed MIME parts.
+
 - Issue #20540: Fix a performance regression (vs. Python 3.2) when layering
   a multiprocessing Connection over a TCP socket.  For small payloads, Nagle's
   algorithm would introduce idle delays before the entire transmission of a

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list