Issue #27445: Merge from 3.5

This commit is contained in:
Berker Peksag 2016-09-08 19:42:11 +03:00
commit d8b7770a0e
3 changed files with 8 additions and 4 deletions

View File

@ -35,10 +35,8 @@ class MIMEText(MIMENonMultipart):
_charset = 'us-ascii' _charset = 'us-ascii'
except UnicodeEncodeError: except UnicodeEncodeError:
_charset = 'utf-8' _charset = 'utf-8'
if isinstance(_charset, Charset):
_charset = str(_charset)
MIMENonMultipart.__init__(self, 'text', _subtype, policy=policy, MIMENonMultipart.__init__(self, 'text', _subtype, policy=policy,
**{'charset': _charset}) **{'charset': str(_charset)})
self.set_payload(_text, _charset) self.set_payload(_text, _charset)

View File

@ -1653,9 +1653,12 @@ class TestMIMEText(unittest.TestCase):
eq(msg.get_charset().input_charset, 'us-ascii') eq(msg.get_charset().input_charset, 'us-ascii')
eq(msg['content-type'], 'text/plain; charset="us-ascii"') eq(msg['content-type'], 'text/plain; charset="us-ascii"')
# Also accept a Charset instance # Also accept a Charset instance
msg = MIMEText('hello there', _charset=Charset('utf-8')) charset = Charset('utf-8')
charset.body_encoding = None
msg = MIMEText('hello there', _charset=charset)
eq(msg.get_charset().input_charset, 'utf-8') eq(msg.get_charset().input_charset, 'utf-8')
eq(msg['content-type'], 'text/plain; charset="utf-8"') eq(msg['content-type'], 'text/plain; charset="utf-8"')
eq(msg.get_payload(), 'hello there')
def test_7bit_input(self): def test_7bit_input(self):
eq = self.assertEqual eq = self.assertEqual

View File

@ -92,6 +92,9 @@ Core and Builtins
Library Library
------- -------
- Issue #27445: Don't pass str(_charset) to MIMEText.set_payload().
Patch by Claude Paroz.
- Issue #24277: The new email API is no longer provisional, and the docs - Issue #24277: The new email API is no longer provisional, and the docs
have been reorganized and rewritten to emphasize the new API. have been reorganized and rewritten to emphasize the new API.