diff options
-rw-r--r-- | Lib/ssl.py | 2 | ||||
-rw-r--r-- | Lib/test/test_ssl.py | 19 |
2 files changed, 14 insertions, 7 deletions
@@ -125,6 +125,8 @@ class SSLSocket(socket): if server_side and not certfile: raise ValueError("certfile must be specified for server-side " "operations") + if keyfile and not certfile: + raise ValueError("certfile must be specified") if certfile and not keyfile: keyfile = certfile self.context = SSLContext(ssl_version) diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index a3d1df1..8e38ae0 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -174,19 +174,24 @@ class BasicSocketTests(unittest.TestCase): def test_errors(self): sock = socket.socket() - with self.assertRaisesRegexp(ValueError, "certfile must be specified"): - ssl.wrap_socket(sock, server_side=True) - ssl.wrap_socket(sock, server_side=True, certfile="") + self.assertRaisesRegexp(ValueError, + "certfile must be specified", + ssl.wrap_socket, sock, keyfile=CERTFILE) + self.assertRaisesRegexp(ValueError, + "certfile must be specified for server-side operations", + ssl.wrap_socket, sock, server_side=True) + self.assertRaisesRegexp(ValueError, + "certfile must be specified for server-side operations", + ssl.wrap_socket, sock, server_side=True, certfile="") s = ssl.wrap_socket(sock, server_side=True, certfile=CERTFILE) self.assertRaisesRegexp(ValueError, "can't connect in server-side mode", s.connect, (HOST, 8080)) with self.assertRaises(IOError) as cm: ssl.wrap_socket(socket.socket(), certfile=WRONGCERT) self.assertEqual(cm.exception.errno, errno.ENOENT) - # XXX - temporarily disabled as per issue #9711 - #with self.assertRaises(IOError) as cm: - # ssl.wrap_socket(socket.socket(), keyfile=WRONGCERT) - #self.assertEqual(cm.exception.errno, errno.ENOENT) + with self.assertRaises(IOError) as cm: + ssl.wrap_socket(socket.socket(), certfile=CERTFILE, keyfile=WRONGCERT) + self.assertEqual(cm.exception.errno, errno.ENOENT) with self.assertRaises(IOError) as cm: ssl.wrap_socket(socket.socket(), certfile=WRONGCERT, keyfile=WRONGCERT) self.assertEqual(cm.exception.errno, errno.ENOENT) |