Patch #1449244: Support Unicode strings in

email.message.Message.{set_charset,get_content_charset}.
This commit is contained in:
Martin v. Löwis 2007-03-13 10:24:14 +00:00
parent 74fb211445
commit 1300831c48
3 changed files with 14 additions and 2 deletions

View File

@ -238,7 +238,7 @@ class Message:
self.del_param('charset')
self._charset = None
return
if isinstance(charset, str):
if isinstance(charset, basestring):
charset = email.charset.Charset(charset)
if not isinstance(charset, email.charset.Charset):
raise TypeError(charset)
@ -756,7 +756,9 @@ class Message:
charset = charset[2]
# charset character must be in us-ascii range
try:
charset = unicode(charset, 'us-ascii').encode('us-ascii')
if isinstance(charset, str):
charset = unicode(charset, 'us-ascii')
charset = charset.encode('us-ascii')
except UnicodeError:
return failobj
# RFC 2046, $4.1.2 says charsets are not case sensitive

View File

@ -502,6 +502,13 @@ class TestMessageAPI(TestEmailBase):
msg.set_payload(x)
self.assertEqual(msg.get_payload(decode=True), x)
def test_get_content_charset(self):
msg = Message()
msg.set_charset('us-ascii')
self.assertEqual('us-ascii', msg.get_content_charset())
msg.set_charset(u'us-ascii')
self.assertEqual('us-ascii', msg.get_content_charset())
# Test the email.Encoders module

View File

@ -202,6 +202,9 @@ Extension Modules
Library
-------
- Patch #1449244: Support Unicode strings in
email.message.Message.{set_charset,get_content_charset}.
- Patch #1542681: add entries for "with", "as" and "CONTEXTMANAGERS" to
pydoc's help keywords.