From 99147c40b5d67d875b5a383d2ed2f54c02da82de Mon Sep 17 00:00:00 2001 From: "R. David Murray" Date: Fri, 4 Jun 2010 16:15:34 +0000 Subject: Merged revisions 81685 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r81685 | r.david.murray | 2010-06-04 12:11:08 -0400 (Fri, 04 Jun 2010) | 4 lines #4768: store base64 encoded email body parts as text, not binary. Patch and tests by Forest Bond. ........ --- Lib/email/encoders.py | 2 +- Lib/email/test/test_email.py | 8 +++++--- Misc/ACKS | 1 + Misc/NEWS | 3 +++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Lib/email/encoders.py b/Lib/email/encoders.py index 20feb02..0ea441d 100644 --- a/Lib/email/encoders.py +++ b/Lib/email/encoders.py @@ -29,7 +29,7 @@ def encode_base64(msg): Also, add an appropriate Content-Transfer-Encoding header. """ orig = msg.get_payload() - encdata = _bencode(orig) + encdata = str(_bencode(orig), 'ascii') msg.set_payload(encdata) msg['Content-Transfer-Encoding'] = 'base64' diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py index 5508456..395e200 100644 --- a/Lib/email/test/test_email.py +++ b/Lib/email/test/test_email.py @@ -966,7 +966,8 @@ class TestMIMEAudio(unittest.TestCase): def test_encoding(self): payload = self._au.get_payload() - self.assertEqual(base64.decodebytes(payload), self._audiodata) + self.assertEqual(base64.decodebytes(bytes(payload, 'ascii')), + self._audiodata) def test_checkSetMinor(self): au = MIMEAudio(self._audiodata, 'fish') @@ -1006,7 +1007,8 @@ class TestMIMEImage(unittest.TestCase): def test_encoding(self): payload = self._im.get_payload() - self.assertEqual(base64.decodebytes(payload), self._imgdata) + self.assertEqual(base64.decodebytes(bytes(payload, 'ascii')), + self._imgdata) def test_checkSetMinor(self): im = MIMEImage(self._imgdata, 'fish') @@ -1046,7 +1048,7 @@ class TestMIMEApplication(unittest.TestCase): eq = self.assertEqual bytes = b'\xfa\xfb\xfc\xfd\xfe\xff' msg = MIMEApplication(bytes) - eq(msg.get_payload(), b'+vv8/f7/') + eq(msg.get_payload(), '+vv8/f7/') eq(msg.get_payload(decode=True), bytes) diff --git a/Misc/ACKS b/Misc/ACKS index 459e216..51aeeec 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -81,6 +81,7 @@ Finn Bock Paul Boddie Matthew Boedicker David Bolen +Forest Bond Gregory Bond Jurjen Bos Peter Bosch diff --git a/Misc/NEWS b/Misc/NEWS index 91d59b1..213cc03 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -54,6 +54,9 @@ C-API Library ------- +- Issue #4768: base64 encoded email body parts were incorrectly stored as + binary strings. They are now correctly converted to strings. + - Issue #8833: tarfile created hard link entries with a size field != 0 by mistake. -- cgit v0.12