[Python-checkins] cpython (2.7): Issue #21847: Fixed xmlrpclib and tests on Unicode-disabled builds.

serhiy.storchaka python-checkins at python.org
Mon Jan 18 12:40:49 EST 2016


https://hg.python.org/cpython/rev/f602dfd35cd4
changeset:   99961:f602dfd35cd4
branch:      2.7
parent:      99957:d34fdd1736f2
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Mon Jan 18 19:35:23 2016 +0200
summary:
  Issue #21847: Fixed xmlrpclib and tests on Unicode-disabled builds.

files:
  Lib/test/test_xmlrpc.py |  19 +++++++++----------
  Lib/xmlrpclib.py        |   4 ++--
  Misc/NEWS               |   2 ++
  3 files changed, 13 insertions(+), 12 deletions(-)


diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -23,13 +23,6 @@
 except ImportError:
     gzip = None
 
-try:
-    unicode
-except NameError:
-    have_unicode = False
-else:
-    have_unicode = True
-
 alist = [{'astring': 'foo at bar.baz.spam',
           'afloat': 7283.43,
           'anint': 2**20,
@@ -37,8 +30,6 @@
           'anotherlist': ['.zyx.41'],
           'abase64': xmlrpclib.Binary("my dog has fleas"),
           'boolean': xmlrpclib.False,
-          'unicode': u'\u4000\u6000\u8000',
-          u'ukey\u4000': 'regular value',
           'datetime1': xmlrpclib.DateTime('20050210T11:41:23'),
           'datetime2': xmlrpclib.DateTime(
                         (2005, 02, 10, 11, 41, 23, 0, 1, -1)),
@@ -46,6 +37,12 @@
                         datetime.datetime(2005, 02, 10, 11, 41, 23)),
           }]
 
+if test_support.have_unicode:
+    alist[0].update({
+          'unicode': test_support.u(r'\u4000\u6000\u8000'),
+          test_support.u(r'ukey\u4000'): 'regular value',
+    })
+
 class XMLRPCTestCase(unittest.TestCase):
 
     def test_dump_load(self):
@@ -150,6 +147,7 @@
                          xmlrpclib.loads(strg)[0][0])
         self.assertRaises(TypeError, xmlrpclib.dumps, (arg1,))
 
+    @test_support.requires_unicode
     def test_default_encoding_issues(self):
         # SF bug #1115989: wrong decoding in '_stringify'
         utf8 = """<?xml version='1.0' encoding='iso-8859-1'?>
@@ -182,7 +180,7 @@
                 temp_sys.setdefaultencoding(old_encoding)
 
         items = d.items()
-        if have_unicode:
+        if test_support.have_unicode:
             self.assertEqual(s, u"abc \x95")
             self.assertIsInstance(s, unicode)
             self.assertEqual(items, [(u"def \x96", u"ghi \x97")])
@@ -477,6 +475,7 @@
                 # protocol error; provide additional information in test output
                 self.fail("%s\n%s" % (e, getattr(e, "headers", "")))
 
+    @test_support.requires_unicode
     def test_unicode_host(self):
         server = xmlrpclib.ServerProxy(u"http://%s:%d/RPC2"%(ADDR, PORT))
         self.assertEqual(server.add("a", u"\xe9"), u"a\xe9")
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -393,7 +393,7 @@
         elif datetime and isinstance(other, datetime.datetime):
             s = self.value
             o = other.strftime("%Y%m%dT%H:%M:%S")
-        elif isinstance(other, (str, unicode)):
+        elif isinstance(other, basestring):
             s = self.value
             o = other
         elif hasattr(other, "timetuple"):
@@ -1560,7 +1560,7 @@
                  allow_none=0, use_datetime=0, context=None):
         # establish a "logical" server connection
 
-        if isinstance(uri, unicode):
+        if unicode and isinstance(uri, unicode):
             uri = uri.encode('ISO-8859-1')
 
         # get the url
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -39,6 +39,8 @@
 Library
 -------
 
+- Issue #21847: Fixed xmlrpclib on Unicode-disabled builds.
+
 - Issue #6500: Fixed infinite recursion in urllib2.Request.__getattr__().
 
 - Issue #26083: Workaround a subprocess bug that raises an incorrect

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list