summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-07-09 12:55:08 (GMT)
committerGitHub <noreply@github.com>2019-07-09 12:55:08 (GMT)
commit4c403b8ca2d0ef44b691cceaeeac9e110fd3f05a (patch)
tree8218c4d24f932831ce2c7d489f430e314dce8b58
parentbbad695e7890513be7a9bc662e2d8ae13bfcd313 (diff)
downloadcpython-4c403b8ca2d0ef44b691cceaeeac9e110fd3f05a.zip
cpython-4c403b8ca2d0ef44b691cceaeeac9e110fd3f05a.tar.gz
cpython-4c403b8ca2d0ef44b691cceaeeac9e110fd3f05a.tar.bz2
bpo-37322: ssl test_pha_required_nocert() ignores expected SSLError (GH-14670)
test_ssl.test_pha_required_nocert() now uses support.catch_threading_exception() to ignore the expected SSLError in ConnectionHandler of ThreadedEchoServer (it is only raised sometimes on Windows). (cherry picked from commit 73ea54620a6f91c3f2e53880373dd47813691a21) Co-authored-by: Victor Stinner <vstinner@redhat.com>
-rw-r--r--Lib/test/test_ssl.py33
1 files changed, 18 insertions, 15 deletions
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index f1b7aa7..879d944 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -4320,21 +4320,24 @@ class TestPostHandshakeAuth(unittest.TestCase):
server_context.verify_mode = ssl.CERT_REQUIRED
client_context.post_handshake_auth = True
- server = ThreadedEchoServer(context=server_context, chatty=False)
- with server:
- with client_context.wrap_socket(socket.socket(),
- server_hostname=hostname) as s:
- s.connect((HOST, server.port))
- s.write(b'PHA')
- # receive CertificateRequest
- self.assertEqual(s.recv(1024), b'OK\n')
- # send empty Certificate + Finish
- s.write(b'HASCERT')
- # receive alert
- with self.assertRaisesRegex(
- ssl.SSLError,
- 'tlsv13 alert certificate required'):
- s.recv(1024)
+ # Ignore expected SSLError in ConnectionHandler of ThreadedEchoServer
+ # (it is only raised sometimes on Windows)
+ with support.catch_threading_exception() as cm:
+ server = ThreadedEchoServer(context=server_context, chatty=False)
+ with server:
+ with client_context.wrap_socket(socket.socket(),
+ server_hostname=hostname) as s:
+ s.connect((HOST, server.port))
+ s.write(b'PHA')
+ # receive CertificateRequest
+ self.assertEqual(s.recv(1024), b'OK\n')
+ # send empty Certificate + Finish
+ s.write(b'HASCERT')
+ # receive alert
+ with self.assertRaisesRegex(
+ ssl.SSLError,
+ 'tlsv13 alert certificate required'):
+ s.recv(1024)
def test_pha_optional(self):
if support.verbose: