bpo-31870: Fix test_get_server_certificate_timeout on Windows (GH-25570)
Some OS do not support millisecond granularity in select(). Use 100ms
timeout and a server callback with sleep to emulate a slow server.
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 327a550..31e1e73 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -2137,9 +2137,13 @@ def test_get_server_certificate_fail(self):
_test_get_server_certificate_fail(self, *self.server_addr)
def test_get_server_certificate_timeout(self):
+ def servername_cb(ssl_sock, server_name, initial_context):
+ time.sleep(0.2)
+ self.server_context.set_servername_callback(servername_cb)
+
with self.assertRaises(socket.timeout):
ssl.get_server_certificate(self.server_addr, ca_certs=SIGNING_CA,
- timeout=0.0001)
+ timeout=0.1)
def test_ciphers(self):
with test_wrap_socket(socket.socket(socket.AF_INET),