diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2010-11-18 15:04:41 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2010-11-18 15:04:41 (GMT) |
commit | f2849f0fb445769a50b5331356f143864c5ce770 (patch) | |
tree | 67c863ba1cc7fdf888e1c7289da8e1cd8e31c46c | |
parent | 4979b9b91ebfaefa53e44546097db7a5eab7e547 (diff) | |
download | cpython-f2849f0fb445769a50b5331356f143864c5ce770.zip cpython-f2849f0fb445769a50b5331356f143864c5ce770.tar.gz cpython-f2849f0fb445769a50b5331356f143864c5ce770.tar.bz2 |
Merged revisions 86514 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86514 | senthil.kumaran | 2010-11-18 23:00:53 +0800 (Thu, 18 Nov 2010) | 3 lines
Fix Issue 9991: xmlrpc client ssl check faulty
........
-rw-r--r-- | Lib/test/test_xmlrpc.py | 25 | ||||
-rw-r--r-- | Lib/xmlrpc/client.py | 2 |
2 files changed, 26 insertions, 1 deletions
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py index 7bcb6ba..8f41d7f 100644 --- a/Lib/test/test_xmlrpc.py +++ b/Lib/test/test_xmlrpc.py @@ -143,6 +143,31 @@ class XMLRPCTestCase(unittest.TestCase): ('host.tld', [('Authorization', 'Basic dXNlcg==')], {})) + def test_ssl_presence(self): + #Check for ssl support + have_ssl = False + if hasattr(socket, 'ssl'): + have_ssl = True + else: + try: + import ssl + except: + pass + else: + have_ssl = True + try: + xmlrpc.client.ServerProxy('https://localhost:9999').bad_function() + except: + exc = sys.exc_info() + if exc[0] == socket.error: + self.assertTrue(have_ssl, + "No SSL support, but xmlrpclib reports supported.") + elif exc[0] == NotImplementedError and str(exc[1]) == \ + "your version of http.client doesn't support HTTPS": + self.assertFalse(have_ssl, + "SSL supported, but xmlrpclib reports not.") + else: + self.fail("Unable to determine status of SSL check.") class HelperTestCase(unittest.TestCase): def test_escape(self): diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py index 8d35b5a..d7dbbcc 100644 --- a/Lib/xmlrpc/client.py +++ b/Lib/xmlrpc/client.py @@ -1178,7 +1178,7 @@ class SafeTransport(Transport): def send_request(self, host, handler, request_body, debug): import socket - if not hasattr(socket, "ssl"): + if not hasattr(http.client, "ssl"): raise NotImplementedError( "your version of http.client doesn't support HTTPS") |