[Python-checkins] bpo-43921: Fix test_ssl.test_wrong_cert_tls13() on Windows (GH-26502)
vstinner
webhook-mailer at python.org
Thu Jun 3 12:04:29 EDT 2021
https://github.com/python/cpython/commit/ea0210fa8ccca769896847f25fc6fadfe9a717bc
commit: ea0210fa8ccca769896847f25fc6fadfe9a717bc
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2021-06-03T18:04:25+02:00
summary:
bpo-43921: Fix test_ssl.test_wrong_cert_tls13() on Windows (GH-26502)
Fix test_ssl.test_wrong_cert_tls13(): use suppress_ragged_eofs=False,
since read() can raise ssl.SSLEOFError on Windows.
files:
A Misc/NEWS.d/next/Tests/2021-06-03-03-29-34.bpo-43921.nwH1FS.rst
M Lib/test/test_ssl.py
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 2df6232941188..85ad8ae827a80 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -3190,7 +3190,8 @@ def test_wrong_cert_tls13(self):
)
with server, \
client_context.wrap_socket(socket.socket(),
- server_hostname=hostname) as s:
+ server_hostname=hostname,
+ suppress_ragged_eofs=False) as s:
# TLS 1.3 perform client cert exchange after handshake
s.connect((HOST, server.port))
try:
@@ -3207,13 +3208,7 @@ def test_wrong_cert_tls13(self):
if support.verbose:
sys.stdout.write("\nsocket.error is %r\n" % e)
else:
- if sys.platform == "win32":
- self.skipTest(
- "Ignoring failed test_wrong_cert_tls13 test case. "
- "The test is flaky on Windows, see bpo-43921."
- )
- else:
- self.fail("Use of invalid cert should have failed!")
+ self.fail("Use of invalid cert should have failed!")
def test_rude_shutdown(self):
"""A brutal shutdown of an SSL server should raise an OSError
@@ -4450,7 +4445,8 @@ def msg_cb(conn, direction, version, content_type, msg_type, data):
server = ThreadedEchoServer(context=server_context, chatty=True)
with server:
with client_context.wrap_socket(socket.socket(),
- server_hostname=hostname) as s:
+ server_hostname=hostname,
+ suppress_ragged_eofs=False) as s:
s.connect((HOST, server.port))
s.write(b'PHA')
# test sometimes fails with EOF error. Test passes as long as
@@ -4461,17 +4457,13 @@ def msg_cb(conn, direction, version, content_type, msg_type, data):
):
# receive CertificateRequest
data = s.recv(1024)
- if not data:
- raise ssl.SSLError(1, "EOF occurred")
self.assertEqual(data, b'OK\n')
# send empty Certificate + Finish
s.write(b'HASCERT')
# receive alert
- data = s.recv(1024)
- if not data:
- raise ssl.SSLError(1, "EOF occurred")
+ s.recv(1024)
def test_pha_optional(self):
if support.verbose:
diff --git a/Misc/NEWS.d/next/Tests/2021-06-03-03-29-34.bpo-43921.nwH1FS.rst b/Misc/NEWS.d/next/Tests/2021-06-03-03-29-34.bpo-43921.nwH1FS.rst
new file mode 100644
index 0000000000000..30e0fadd66125
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2021-06-03-03-29-34.bpo-43921.nwH1FS.rst
@@ -0,0 +1,3 @@
+Fix test_ssl.test_wrong_cert_tls13(): use ``suppress_ragged_eofs=False``,
+since ``read()`` can raise :exc:`ssl.SSLEOFError` on Windows. Patch by
+Victor Stinner.
More information about the Python-checkins
mailing list