This commit is contained in:
R David Murray 2011-03-16 16:14:43 -04:00
commit bb35299fcd
4 changed files with 21 additions and 6 deletions

View file

@ -12,7 +12,7 @@ __all__ = [
] ]
from base64 import b64encode as _bencode from base64 import encodebytes as _bencode
from quopri import encodestring as _encodestring from quopri import encodestring as _encodestring

View file

@ -573,9 +573,18 @@ class TestMessageAPI(TestEmailBase):
msg['Dummy'] = 'dummy\nX-Injected-Header: test' msg['Dummy'] = 'dummy\nX-Injected-Header: test'
self.assertRaises(errors.HeaderParseError, msg.as_string) self.assertRaises(errors.HeaderParseError, msg.as_string)
# Test the email.encoders module # Test the email.encoders module
class TestEncoders(unittest.TestCase): class TestEncoders(unittest.TestCase):
def test_EncodersEncode_base64(self):
with openfile('PyBanner048.gif', 'rb') as fp:
bindata = fp.read()
mimed = email.mime.image.MIMEImage(bindata)
base64ed = mimed.get_payload()
# the transfer-encoded body lines should all be <=76 characters
lines = base64ed.split('\n')
self.assertLessEqual(max([ len(x) for x in lines ]), 76)
def test_encode_empty_payload(self): def test_encode_empty_payload(self):
eq = self.assertEqual eq = self.assertEqual
msg = Message() msg = Message()
@ -1141,10 +1150,11 @@ class TestMIMEApplication(unittest.TestCase):
def test_body(self): def test_body(self):
eq = self.assertEqual eq = self.assertEqual
bytes = b'\xfa\xfb\xfc\xfd\xfe\xff' bytesdata = b'\xfa\xfb\xfc\xfd\xfe\xff'
msg = MIMEApplication(bytes) msg = MIMEApplication(bytesdata)
eq(msg.get_payload(), '+vv8/f7/') # whitespace in the cte encoded block is RFC-irrelevant.
eq(msg.get_payload(decode=True), bytes) eq(msg.get_payload().strip(), '+vv8/f7/')
eq(msg.get_payload(decode=True), bytesdata)

View file

@ -227,6 +227,7 @@ Jaromir Dolecek
Ismail Donmez Ismail Donmez
Marcos Donolo Marcos Donolo
Dima Dorfman Dima Dorfman
Yves Dorfsman
Cesar Douady Cesar Douady
Dean Draayer Dean Draayer
Fred L. Drake, Jr. Fred L. Drake, Jr.

View file

@ -72,6 +72,10 @@ Core and Builtins
Library Library
------- -------
- Issue #9298: base64 bodies weren't being folded to line lengths less than 78,
which was a regression relative to Python2. Unlike Python2, the last line
of the folded body now ends with a carriage return.
- Issue #11560: shutil.unpack_archive now correctly handles the format - Issue #11560: shutil.unpack_archive now correctly handles the format
parameter. Patch by Evan Dandrea. parameter. Patch by Evan Dandrea.