From 305e56c27afce605e5d2f71903a966cf0bb95038 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Tue, 5 Sep 2017 16:37:09 -0700 Subject: [PATCH] bpo-31320: No traceback to sys.stderr in test_ssl (#3360) In case PROTOCOL_TLS_SERVER is used for both client context and server context, the test thread dies with OSError. Catch OSError to avoid traceback on sys.stderr Signed-off-by: Christian Heimes --- Lib/test/test_ssl.py | 5 ++++- .../next/Tests/2017-09-05-14-23-35.bpo-31320.JRDHx7.rst | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Tests/2017-09-05-14-23-35.bpo-31320.JRDHx7.rst diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 5916a2bcf160ec..a8ffef0944f9f1 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -1853,11 +1853,14 @@ def wrap_conn(self): self.sock, server_side=True) self.server.selected_npn_protocols.append(self.sslconn.selected_npn_protocol()) self.server.selected_alpn_protocols.append(self.sslconn.selected_alpn_protocol()) - except (ssl.SSLError, ConnectionResetError) as e: + except (ssl.SSLError, ConnectionResetError, OSError) as e: # We treat ConnectionResetError as though it were an # SSLError - OpenSSL on Ubuntu abruptly closes the # connection when asked to use an unsupported protocol. # + # OSError may occur with wrong protocols, e.g. both + # sides use PROTOCOL_TLS_SERVER. + # # XXX Various errors can have happened here, for example # a mismatching protocol version, an invalid certificate, # or a low-level bug. This should be made more discriminating. diff --git a/Misc/NEWS.d/next/Tests/2017-09-05-14-23-35.bpo-31320.JRDHx7.rst b/Misc/NEWS.d/next/Tests/2017-09-05-14-23-35.bpo-31320.JRDHx7.rst new file mode 100644 index 00000000000000..8b7163dfe79a70 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2017-09-05-14-23-35.bpo-31320.JRDHx7.rst @@ -0,0 +1 @@ +Silence traceback in test_ssl