diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py index 62626b63955..84e369b8d37 100644 --- a/Lib/test/test_xmlrpc.py +++ b/Lib/test/test_xmlrpc.py @@ -150,31 +150,18 @@ def test_get_host_info(self): [('Authorization', 'Basic dXNlcg==')], {})) def test_ssl_presence(self): - #Check for ssl support - have_ssl = False - if hasattr(socket, 'ssl'): - have_ssl = True + try: + import ssl + except: + have_ssl = False else: - try: - import ssl - except: - pass - else: - have_ssl = True + has_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.") - + except NotImplementedError: + self.assertFalse(has_ssl, "xmlrpc client's error with SSL support") + except socket.error: + self.assertTrue(has_ssl) class HelperTestCase(unittest.TestCase): def test_escape(self): diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py index b8559651e86..4de4c2b27dc 100644 --- a/Lib/xmlrpc/client.py +++ b/Lib/xmlrpc/client.py @@ -1330,7 +1330,7 @@ def make_connection(self, host): if self._connection and host == self._connection[0]: return self._connection[1] - if not hasattr(http.client, "ssl"): + if not hasattr(http.client, "HTTPSConnection"): raise NotImplementedError( "your version of http.client doesn't support HTTPS") # create a HTTPS connection object from a host descriptor