diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2013-05-01 18:52:07 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2013-05-01 18:52:07 (GMT) |
commit | 242db728e2fcbf9004143517d240301334b02545 (patch) | |
tree | 9e26f188d67f7ecec49cbf495753d6bcbdb74d80 /Lib/test/test_ssl.py | |
parent | f6ca26fbffb689190da9dbe66df09c7d7e118616 (diff) | |
download | cpython-242db728e2fcbf9004143517d240301334b02545.zip cpython-242db728e2fcbf9004143517d240301334b02545.tar.gz cpython-242db728e2fcbf9004143517d240301334b02545.tar.bz2 |
Issue #13721: SSLSocket.getpeercert() and SSLSocket.do_handshake() now raise an OSError with ENOTCONN, instead of an AttributeError, when the SSLSocket is not connected.
Diffstat (limited to 'Lib/test/test_ssl.py')
-rw-r--r-- | Lib/test/test_ssl.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 1f0f62a..d4c90cf 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -17,6 +17,7 @@ import asyncore import weakref import platform import functools +from unittest import mock ssl = support.import_module("ssl") @@ -1931,6 +1932,20 @@ else: self.assertIsInstance(remote, ssl.SSLSocket) self.assertEqual(peer, client_addr) + def test_getpeercert_enotconn(self): + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + with context.wrap_socket(socket.socket()) as sock: + with self.assertRaises(OSError) as cm: + sock.getpeercert() + self.assertEqual(cm.exception.errno, errno.ENOTCONN) + + def test_do_handshake_enotconn(self): + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + with context.wrap_socket(socket.socket()) as sock: + with self.assertRaises(OSError) as cm: + sock.do_handshake() + self.assertEqual(cm.exception.errno, errno.ENOTCONN) + def test_default_ciphers(self): context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) try: |