[Python-checkins] commit of r41594 - in python/trunk/Lib: test/test_xmlrpc.py xmlrpclib.py

andrew.kuchling python-checkins at python.org
Sun Dec 4 20:11:22 CET 2005


Author: andrew.kuchling
Date: Sun Dec  4 20:11:17 2005
New Revision: 41594

Modified:
   python/trunk/Lib/test/test_xmlrpc.py
   python/trunk/Lib/xmlrpclib.py
Log:
[Bug #1164912] Ensure Datetime wrapper class .value attribute is an 8-bit string, not a Unicode string

Modified: python/trunk/Lib/test/test_xmlrpc.py
==============================================================================
--- python/trunk/Lib/test/test_xmlrpc.py	(original)
+++ python/trunk/Lib/test/test_xmlrpc.py	Sun Dec  4 20:11:17 2005
@@ -76,6 +76,16 @@
         (newdt,), m = xmlrpclib.loads(s, use_datetime=0)
         self.assertEquals(newdt, xmlrpclib.DateTime('%sT11:41:23'%today))
 
+    def test_bug_1164912 (self):
+        d = xmlrpclib.DateTime()
+        ((new_d,), dummy) = xmlrpclib.loads(xmlrpclib.dumps((d,), 
+                                            methodresponse=True))
+        self.assert_(isinstance(new_d.value, str))
+
+        # Check that the output of dumps() is still an 8-bit string
+        s = xmlrpclib.dumps((new_d,), methodresponse=True)
+        self.assert_(isinstance(s, str))
+
     def test_dump_big_long(self):
         self.assertRaises(OverflowError, xmlrpclib.dumps, (2L**99,))
 

Modified: python/trunk/Lib/xmlrpclib.py
==============================================================================
--- python/trunk/Lib/xmlrpclib.py	(original)
+++ python/trunk/Lib/xmlrpclib.py	Sun Dec  4 20:11:17 2005
@@ -388,6 +388,7 @@
         return "<DateTime %s at %x>" % (repr(self.value), id(self))
 
     def decode(self, data):
+        data = str(data)
         self.value = string.strip(data)
 
     def encode(self, out):


More information about the Python-checkins mailing list