More email package fixes.

MIMEApplication() requires a bytes object for its _data, so fix the tests.

We no longer need utils._identity() or utils._bdecode().  The former isn't
used anywhere AFAICT (where's "make test's" lint? <wink>) and the latter is a
kludge that is eliminated by base64.b64encode().

Current status: 5F/5E
This commit is contained in:
Barry Warsaw 2007-08-31 03:04:26 +00:00
parent 00b34228bb
commit 8b2af27dae
4 changed files with 10 additions and 34 deletions

View file

@ -8,6 +8,7 @@ __all__ = ['Message']
import re
import uu
import base64
import binascii
import warnings
from io import BytesIO, StringIO
@ -196,12 +197,14 @@ class Message:
return utils._qdecode(payload)
elif cte == 'base64':
try:
return utils._bdecode(payload)
if isinstance(payload, str):
payload = payload.encode('raw-unicode-escape')
return base64.b64decode(payload)
#return utils._bdecode(payload)
except binascii.Error:
# Incorrect padding
pass
elif cte in ('x-uuencode', 'uuencode', 'uue', 'x-uue'):
payload += '\n'
in_file = BytesIO(payload.encode('raw-unicode-escape'))
out_file = BytesIO()
try:
@ -212,7 +215,9 @@ class Message:
pass
# Is there a better way to do this? We can't use the bytes
# constructor.
return bytes(payload, 'raw-unicode-escape')
if isinstance(payload, str):
return payload.encode('raw-unicode-escape')
return payload
def set_payload(self, payload, charset=None):
"""Set the payload to the given value.