From 951af2d7f140be7beb9cda2bcdd54f820c905e45 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Fri, 17 May 2019 11:29:38 -0700 Subject: closes bpo-36755: Suppress noisy error output in test HTTPS server by default. (GH-13370) TLS 1.3 has a more efficient handshake protocol. The client can reject the server's credentials and close the connection before the server has even finished writing out all of its initial data. Depending on whether the server finishes writing the rest of its handshake before the it sees the connection is reset, the server will read an empty line or see a ECONNRESET OSError. Nothing is really wrong here with the server or client, so just suppress the error output in the OSError case to fix the test. This fix isn't required in Python 3 because clients that reject the server's certificate will shut down the TLS layer before closing the TCP connection. --- Lib/test/ssl_servers.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Lib/test/ssl_servers.py b/Lib/test/ssl_servers.py index a312e28..a502305 100644 --- a/Lib/test/ssl_servers.py +++ b/Lib/test/ssl_servers.py @@ -42,6 +42,11 @@ class HTTPSServer(_HTTPServer): raise return sslconn, addr + def handle_error(self, request, client_address): + "Suppose noisy error output by default." + if support.verbose: + _HTTPServer.handle_error(self, request, client_address) + class RootedHTTPRequestHandler(SimpleHTTPRequestHandler): # need to override translate_path to get a known root, # instead of using os.curdir, since the test could be -- cgit v0.12