diff options
author | Georg Brandl <georg@python.org> | 2009-02-13 10:50:01 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2009-02-13 10:50:01 (GMT) |
commit | c8dcfb6cece2da41d7b86879af1f4b81f98d70df (patch) | |
tree | b3b568eb77b87c263cc5e042435e84c1f6b19681 /Lib | |
parent | 35e2c4e67adee5910819b95297d19285270eb7fe (diff) | |
download | cpython-c8dcfb6cece2da41d7b86879af1f4b81f98d70df.zip cpython-c8dcfb6cece2da41d7b86879af1f4b81f98d70df.tar.gz cpython-c8dcfb6cece2da41d7b86879af1f4b81f98d70df.tar.bz2 |
part of #3613: fix get_host_info() usage of base64.encodestring().
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_xmlrpc.py | 8 | ||||
-rw-r--r-- | Lib/xmlrpc/client.py | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py index 7c68e4c..d1ed40f 100644 --- a/Lib/test/test_xmlrpc.py +++ b/Lib/test/test_xmlrpc.py @@ -135,6 +135,14 @@ class XMLRPCTestCase(unittest.TestCase): xmlrpclib.loads(strg)[0][0]) self.assertRaises(TypeError, xmlrpclib.dumps, (arg1,)) + def test_get_host_info(self): + # see bug #3613, this raised a TypeError + transp = xmlrpc.client.Transport() + self.assertEquals(transp.get_host_info("user@host.tld"), + ('host.tld', + [('Authorization', 'Basic dXNlcg==')], {})) + + class HelperTestCase(unittest.TestCase): def test_escape(self): self.assertEqual(xmlrpclib.escape("a&b"), "a&b") diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py index e66ee84..86988de 100644 --- a/Lib/xmlrpc/client.py +++ b/Lib/xmlrpc/client.py @@ -1161,7 +1161,8 @@ class Transport: if auth: import base64 - auth = base64.encodestring(urllib.parse.unquote(auth)) + auth = urllib.parse.unquote_to_bytes(auth) + auth = base64.encodestring(auth).decode("utf-8") auth = "".join(auth.split()) # get rid of whitespace extra_headers = [ ("Authorization", "Basic " + auth) |