[Python-checkins] r54333 - in python/trunk: Lib/email/message.py Lib/email/test/test_email.py Misc/NEWS

martin.v.loewis python-checkins at python.org
Tue Mar 13 11:24:13 CET 2007


Author: martin.v.loewis
Date: Tue Mar 13 11:24:00 2007
New Revision: 54333

Modified:
   python/trunk/Lib/email/message.py
   python/trunk/Lib/email/test/test_email.py
   python/trunk/Misc/NEWS
Log:
Patch #1449244: Support Unicode strings in
email.message.Message.{set_charset,get_content_charset}.
Will backport.


Modified: python/trunk/Lib/email/message.py
==============================================================================
--- python/trunk/Lib/email/message.py	(original)
+++ python/trunk/Lib/email/message.py	Tue Mar 13 11:24:00 2007
@@ -238,7 +238,7 @@
             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 @@
                 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

Modified: python/trunk/Lib/email/test/test_email.py
==============================================================================
--- python/trunk/Lib/email/test/test_email.py	(original)
+++ python/trunk/Lib/email/test/test_email.py	Tue Mar 13 11:24:00 2007
@@ -502,6 +502,13 @@
         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

Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Tue Mar 13 11:24:00 2007
@@ -168,6 +168,9 @@
 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.
 


More information about the Python-checkins mailing list