/usr/lib/python3.10/site-packages/setuptools/dist.py:717: UserWarning: Usage of dash-separated 'provides-extra' will not be supported in future versions. Please use the underscore name 'provides_extra' instead warnings.warn( /usr/lib/python3.10/site-packages/setuptools/dist.py:717: UserWarning: Usage of dash-separated 'requires-dist' will not be supported in future versions. Please use the underscore name 'requires_dist' instead warnings.warn( running pytest running egg_info creating src/urllib3.egg-info writing src/urllib3.egg-info/PKG-INFO writing dependency_links to src/urllib3.egg-info/dependency_links.txt writing requirements to src/urllib3.egg-info/requires.txt writing top-level names to src/urllib3.egg-info/top_level.txt writing manifest file 'src/urllib3.egg-info/SOURCES.txt' reading manifest file 'src/urllib3.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'Makefile' adding license file 'LICENSE.txt' writing manifest file 'src/urllib3.egg-info/SOURCES.txt' running build_ext ============================= test session starts ============================== platform linux -- Python 3.10.1, pytest-6.2.5, py-1.11.0, pluggy-0.13.1 rootdir: /build/python-urllib3/src/urllib3-1.26.8, configfile: setup.cfg plugins: flaky-3.7.0 collected 1943 items / 54 deselected / 1889 selected test/test_collections.py ....................................s [ 1%] test/test_compatibility.py ... [ 2%] test/test_connection.py ............. [ 2%] test/test_connectionpool.py ............................................ [ 5%] ............................ [ 6%] test/test_exceptions.py ............. [ 7%] test/test_fields.py ............... [ 8%] test/test_filepost.py ........... [ 8%] test/test_no_ssl.py .. [ 8%] test/test_poolmanager.py .......................... [ 10%] test/test_proxymanager.py ...... [ 10%] test/test_queue_monkeypatch.py . [ 10%] test/test_response.py .................................................. [ 13%] .................. [ 14%] test/test_retry.py ................................ [ 15%] test/test_retry_deprecated.py .......................................... [ 18%] . [ 18%] test/test_ssl.py .................................. [ 19%] test/test_ssltransport.py ............... [ 20%] test/test_util.py ...................................................... [ 23%] ........................................................................ [ 27%] ..........................................................ss..s...s..... [ 31%] .................................................................. [ 34%] test/test_wait.py ............. [ 35%] test/contrib/test_pyopenssl.py ......................................... [ 37%] ............s.sssss...ssssssssssssssssssssssssssssssssssssssssssssssssss [ 41%] ssssssssssssssssssssssssssssssssss...................................... [ 45%] s.........................................s............................. [ 48%] .......... [ 49%] test/contrib/test_pyopenssl_dependencies.py .. [ 49%] test/contrib/test_securetransport.py ssssssssssssException in thread Thread-61: Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server Exception in thread Thread-63: self.socket_handler(sock) Traceback (most recent call last): File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1410, in socket_handler sException in thread Thread-64: File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner Traceback (most recent call last): s self.run() Exception in thread Thread-62: ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run sTraceback (most recent call last): File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner s self.server = self._start_server() s self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server s self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() self.socket_handler(sock) self.server = self._start_server() s return context.wrap_socket( File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1410, in socket_handler File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server s File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1410, in socket_handler self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1410, in socket_handler ssl_sock = ssl.wrap_socket( return self.sslsocket_class._create( s ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1070, in _create File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket s self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket s return context.wrap_socket( return context.wrap_socket( s return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket s File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket s self._sslobj.do_handshake() File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) s return self.sslsocket_class._create( return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create File "/usr/lib/python3.10/ssl.py", line 1070, in _create s return self.sslsocket_class._create( s self.do_handshake() self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake ss File "/usr/lib/python3.10/ssl.py", line 1070, in _create self._sslobj.do_handshake() self.do_handshake() ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) s File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) self._sslobj.do_handshake() sssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) ss [ 51%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 55%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 59%] ssssssssssssssssssssssssssssssssssssss [ 61%] test/contrib/test_socks.py .................. [ 62%] test/with_dummyserver/test_chunked_transfer.py ................ [ 62%] test/with_dummyserver/test_connectionpool.py ........................... [ 64%] ........................................................................ [ 68%] ........................................................................ [ 71%] ........................................................................ [ 75%] ........................................................................ [ 79%] .................s................... [ 81%] test/with_dummyserver/test_https.py ................................s.ss [ 83%] ss....ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 87%] ssssssssssssssssss...................................................... [ 91%] .................................... [ 92%] test/with_dummyserver/test_no_ssl.py .. [ 93%] test/with_dummyserver/test_poolmanager.py ......................... [ 94%] test/with_dummyserver/test_proxy_poolmanager.py ...s.s.................. [ 95%] ...................... [ 96%] test/with_dummyserver/test_socketlevel.py .............................. [ 98%] ...Exception in thread Thread-162: Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1275, in socket_handler ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) .....Exception in thread Thread-170: Traceback (most recent call last): File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1475, in socket_handler _ = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1483, in socket_handler assert "alert unknown ca" in str(e) AssertionError: assert 'alert unknown ca' in 'EOF occurred in violation of protocol (_ssl.c:997)' + where 'EOF occurred in violation of protocol (_ssl.c:997)' = str(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:997)')) Exception in thread Thread-168: Exception in thread Thread-165: Traceback (most recent call last): Traceback (most recent call last): Exception in thread Thread-167: File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner Exception in thread Thread-169: Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner Exception in thread Thread-166: Traceback (most recent call last): self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.server = self._start_server() F File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1410, in socket_handler self.socket_handler(sock) return context.wrap_socket( . File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1410, in socket_handler self.socket_handler(sock) File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket . self.do_handshake() . File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket self._sslobj.do_handshake() . File "/usr/lib/python3.10/ssl.py", line 1070, in _create File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) . self._sslobj.do_handshake() ................ [100%] =================================== FAILURES =================================== ____________ TestSSL.test_ssl_custom_validation_failure_terminates _____________ self = conn = method = 'GET', url = '/' timeout = Timeout(connect=0.01, read=0.01, total=None), chunked = False httplib_request_kw = {'body': None, 'headers': {}} timeout_obj = Timeout(connect=0.01, read=0.01, total=None) def _make_request( self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw ): """ Perform a request on a given urllib connection object taken from our pool. :param conn: a connection from one of our connection pools :param timeout: Socket timeout in seconds for the request. This can be a float or integer, which will set the same timeout value for the socket connect and the socket read, or an instance of :class:`urllib3.util.Timeout`, which gives you more fine-grained control over your timeouts. """ self.num_requests += 1 timeout_obj = self._get_timeout(timeout) timeout_obj.start_connect() conn.timeout = timeout_obj.connect_timeout # Trigger any extra validation we need to do. try: > self._validate_conn(conn) src/urllib3/connectionpool.py:386: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = conn = def _validate_conn(self, conn): """ Called right before a request is made, after the socket is created. """ super(HTTPSConnectionPool, self)._validate_conn(conn) # Force connect early to allow us to validate the connection. if not getattr(conn, "sock", None): # AppEngine might not have `.sock` > conn.connect() src/urllib3/connectionpool.py:1040: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): # Add certificate verification conn = self._new_conn() hostname = self.host tls_in_tls = False if self._is_using_tunnel(): if self.tls_in_tls_required: conn = self._connect_tls_proxy(hostname, conn) tls_in_tls = True self.sock = conn # Calls self._set_hostport(), so self.host is # self._tunnel_host below. self._tunnel() # Mark this connection as not reusable self.auto_open = 0 # Override the host with the one we're requesting data from. hostname = self._tunnel_host server_hostname = hostname if self.server_hostname is not None: server_hostname = self.server_hostname is_time_off = datetime.date.today() < RECENT_DATE if is_time_off: warnings.warn( ( "System time is way off (before {0}). This will probably " "lead to SSL verification errors" ).format(RECENT_DATE), SystemTimeWarning, ) # Wrap socket using verification with the root certs in # trusted_root_certs default_ssl_context = False if self.ssl_context is None: default_ssl_context = True self.ssl_context = create_urllib3_context( ssl_version=resolve_ssl_version(self.ssl_version), cert_reqs=resolve_cert_reqs(self.cert_reqs), ) context = self.ssl_context context.verify_mode = resolve_cert_reqs(self.cert_reqs) # Try to load OS default certs if none are given. # Works well on Windows (requires Python3.4+) if ( not self.ca_certs and not self.ca_cert_dir and not self.ca_cert_data and default_ssl_context and hasattr(context, "load_default_certs") ): context.load_default_certs() > self.sock = ssl_wrap_socket( sock=conn, keyfile=self.key_file, certfile=self.cert_file, key_password=self.key_password, ca_certs=self.ca_certs, ca_cert_dir=self.ca_cert_dir, ca_cert_data=self.ca_cert_data, server_hostname=server_hostname, ssl_context=context, tls_in_tls=tls_in_tls, ) src/urllib3/connection.py:416: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sock = keyfile = None, certfile = None, cert_reqs = None ca_certs = '/tmp/pytest-of-builduser/pytest-0/test_ssl_custom_validation_fai2/ca.pem' server_hostname = 'localhost', ssl_version = None, ciphers = None ssl_context = , ca_cert_dir = None key_password = None, ca_cert_data = None, tls_in_tls = False def ssl_wrap_socket( sock, keyfile=None, certfile=None, cert_reqs=None, ca_certs=None, server_hostname=None, ssl_version=None, ciphers=None, ssl_context=None, ca_cert_dir=None, key_password=None, ca_cert_data=None, tls_in_tls=False, ): """ All arguments except for server_hostname, ssl_context, and ca_cert_dir have the same meaning as they do when using :func:`ssl.wrap_socket`. :param server_hostname: When SNI is supported, the expected hostname of the certificate :param ssl_context: A pre-made :class:`SSLContext` object. If none is provided, one will be created using :func:`create_urllib3_context`. :param ciphers: A string of ciphers we wish the client to support. :param ca_cert_dir: A directory containing CA certificates in multiple separate files, as supported by OpenSSL's -CApath flag or the capath argument to SSLContext.load_verify_locations(). :param key_password: Optional password if the keyfile is encrypted. :param ca_cert_data: Optional string containing CA certificates in PEM format suitable for passing as the cadata parameter to SSLContext.load_verify_locations() :param tls_in_tls: Use SSLTransport to wrap the existing socket. """ context = ssl_context if context is None: # Note: This branch of code and all the variables in it are no longer # used by urllib3 itself. We should consider deprecating and removing # this code. context = create_urllib3_context(ssl_version, cert_reqs, ciphers=ciphers) if ca_certs or ca_cert_dir or ca_cert_data: try: context.load_verify_locations(ca_certs, ca_cert_dir, ca_cert_data) except (IOError, OSError) as e: raise SSLError(e) elif ssl_context is None and hasattr(context, "load_default_certs"): # try to load OS default certs; works well on Windows (require Python3.4+) context.load_default_certs() # Attempt to detect if we get the goofy behavior of the # keyfile being encrypted and OpenSSL asking for the # passphrase via the terminal and instead error out. if keyfile and key_password is None and _is_key_file_encrypted(keyfile): raise SSLError("Client private key is encrypted, password is required") if certfile: if key_password is None: context.load_cert_chain(certfile, keyfile) else: context.load_cert_chain(certfile, keyfile, key_password) try: if hasattr(context, "set_alpn_protocols"): context.set_alpn_protocols(ALPN_PROTOCOLS) except NotImplementedError: # Defensive: in CI, we always have set_alpn_protocols pass # If we detect server_hostname is an IP address then the SNI # extension should not be used according to RFC3546 Section 3.1 use_sni_hostname = server_hostname and not is_ipaddress(server_hostname) # SecureTransport uses server_hostname in certificate verification. send_sni = (use_sni_hostname and HAS_SNI) or ( IS_SECURETRANSPORT and server_hostname ) # Do not warn the user if server_hostname is an invalid SNI hostname. if not HAS_SNI and use_sni_hostname: warnings.warn( "An HTTPS request has been made, but the SNI (Server Name " "Indication) extension to TLS is not available on this platform. " "This may cause the server to present an incorrect TLS " "certificate, which can cause validation failures. You can upgrade to " "a newer version of Python to solve this. For more information, see " "https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html" "#ssl-warnings", SNIMissingWarning, ) if send_sni: > ssl_sock = _ssl_wrap_socket_impl( sock, context, tls_in_tls, server_hostname=server_hostname ) src/urllib3/util/ssl_.py:449: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sock = ssl_context = , tls_in_tls = False server_hostname = 'localhost' def _ssl_wrap_socket_impl(sock, ssl_context, tls_in_tls, server_hostname=None): if tls_in_tls: if not SSLTransport: # Import error, ssl is not available. raise ProxySchemeUnsupported( "TLS in TLS requires support for the 'ssl' module" ) SSLTransport._validate_ssl_context_for_tls_in_tls(ssl_context) return SSLTransport(sock, ssl_context, server_hostname) if server_hostname: > return ssl_context.wrap_socket(sock, server_hostname=server_hostname) src/urllib3/util/ssl_.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = sock = server_side = False, do_handshake_on_connect = True, suppress_ragged_eofs = True server_hostname = 'localhost', session = None def wrap_socket(self, sock, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname=None, session=None): # SSLSocket class handles server_hostname encoding before it calls # ctx._wrap_socket() > return self.sslsocket_class._create( sock=sock, server_side=server_side, do_handshake_on_connect=do_handshake_on_connect, suppress_ragged_eofs=suppress_ragged_eofs, server_hostname=server_hostname, context=self, session=session ) /usr/lib/python3.10/ssl.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = sock = server_side = False, do_handshake_on_connect = True, suppress_ragged_eofs = True server_hostname = 'localhost', context = session = None @classmethod def _create(cls, sock, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname=None, context=None, session=None): if sock.getsockopt(SOL_SOCKET, SO_TYPE) != SOCK_STREAM: raise NotImplementedError("only stream sockets are supported") if server_side: if server_hostname: raise ValueError("server_hostname can only be specified " "in client mode") if session is not None: raise ValueError("session can only be specified in " "client mode") if context.check_hostname and not server_hostname: raise ValueError("check_hostname requires server_hostname") kwargs = dict( family=sock.family, type=sock.type, proto=sock.proto, fileno=sock.fileno() ) self = cls.__new__(cls, **kwargs) super(SSLSocket, self).__init__(**kwargs) self.settimeout(sock.gettimeout()) sock.detach() self._context = context self._session = session self._closed = False self._sslobj = None self.server_side = server_side self.server_hostname = context._encode_hostname(server_hostname) self.do_handshake_on_connect = do_handshake_on_connect self.suppress_ragged_eofs = suppress_ragged_eofs # See if we are connected try: self.getpeername() except OSError as e: if e.errno != errno.ENOTCONN: raise connected = False else: connected = True self._connected = connected if connected: # create the SSL object try: self._sslobj = self._context._wrap_socket( self, server_side, self.server_hostname, owner=self, session=self._session, ) if do_handshake_on_connect: timeout = self.gettimeout() if timeout == 0.0: # non-blocking raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets") > self.do_handshake() /usr/lib/python3.10/ssl.py:1070: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = block = False @_sslcopydoc def do_handshake(self, block=False): self._check_connected() timeout = self.gettimeout() try: if timeout == 0.0 and block: self.settimeout(None) > self._sslobj.do_handshake() E TimeoutError: _ssl.c:980: The handshake operation timed out /usr/lib/python3.10/ssl.py:1341: TimeoutError During handling of the above exception, another exception occurred: self = tmpdir = local('/tmp/pytest-of-builduser/pytest-0/test_ssl_custom_validation_fai2') def test_ssl_custom_validation_failure_terminates(self, tmpdir): """ Ensure that the underlying socket is terminated if custom validation fails. """ server_closed = Event() def is_closed_socket(sock): try: sock.settimeout(SHORT_TIMEOUT) # Python 3 sock.recv(1) # Python 2 except (OSError, socket.error): return True return False def socket_handler(listener): sock = listener.accept()[0] try: _ = ssl.wrap_socket( sock, server_side=True, keyfile=DEFAULT_CERTS["keyfile"], certfile=DEFAULT_CERTS["certfile"], ca_certs=DEFAULT_CA, ) except ssl.SSLError as e: assert "alert unknown ca" in str(e) if is_closed_socket(sock): server_closed.set() self._start_server(socket_handler) # client uses a different ca other_ca = trustme.CA() other_ca_path = str(tmpdir / "ca.pem") other_ca.cert_pem.write_to_path(other_ca_path) with HTTPSConnectionPool( self.host, self.port, cert_reqs="REQUIRED", ca_certs=other_ca_path ) as pool: with pytest.raises(SSLError): > pool.request("GET", "/", retries=False, timeout=LONG_TIMEOUT) test/with_dummyserver/test_socketlevel.py:1498: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src/urllib3/request.py:74: in request return self.request_encode_url( src/urllib3/request.py:96: in request_encode_url return self.urlopen(method, url, **extra_kw) src/urllib3/connectionpool.py:785: in urlopen retries = retries.increment( src/urllib3/util/retry.py:525: in increment raise six.reraise(type(error), error, _stacktrace) src/urllib3/packages/six.py:770: in reraise raise value src/urllib3/connectionpool.py:703: in urlopen httplib_response = self._make_request( src/urllib3/connectionpool.py:389: in _make_request self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = err = TimeoutError('_ssl.c:980: The handshake operation timed out'), url = '/' timeout_value = 0.01 def _raise_timeout(self, err, url, timeout_value): """Is the error actually a timeout? Will raise a ReadTimeout or pass""" if isinstance(err, SocketTimeout): > raise ReadTimeoutError( self, url, "Read timed out. (read timeout=%s)" % timeout_value ) E urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='localhost', port=46003): Read timed out. (read timeout=0.01) src/urllib3/connectionpool.py:340: ReadTimeoutError =============================== warnings summary =============================== test/conftest.py:201 /build/python-urllib3/src/urllib3-1.26.8/test/conftest.py:201: PytestDeprecationWarning: @pytest.yield_fixture is deprecated. Use @pytest.fixture instead; they are the same. def stub_timezone(request): test/test_retry.py:323 /build/python-urllib3/src/urllib3-1.26.8/test/test_retry.py:323: PytestUnknownMarkWarning: Unknown pytest.mark.freeze_time - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.freeze_time("2019-06-03 11:00:00", tz_offset=0) test/test_retry_deprecated.py:325 /build/python-urllib3/src/urllib3-1.26.8/test/test_retry_deprecated.py:325: PytestUnknownMarkWarning: Unknown pytest.mark.freeze_time - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.freeze_time("2019-06-03 11:00:00", tz_offset=0) test/test_ssltransport.py:102 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:102: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:111 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:111: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:124 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:124: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:138 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:138: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:152 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:152: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:188 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:188: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:216 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:216: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:347 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:347: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:369 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:369: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:391 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:391: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:427 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:427: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:459 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:459: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssltransport.py:484 /build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py:484: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(PER_TEST_TIMEOUT) test/test_ssl.py::test_context_sni_with_ip_address[False-www.python.org-False] /build/python-urllib3/src/urllib3-1.26.8/src/urllib3/util/ssl_.py:437: SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings warnings.warn( test/test_ssltransport.py::SingleTLSLayerTestCase::test_ssl_object_attributes /build/python-urllib3/src/urllib3-1.26.8/src/urllib3/util/ssltransport.py:169: DeprecationWarning: ssl NPN is deprecated, use ALPN instead return self.sslobj.selected_npn_protocol() test/test_ssltransport.py::TlsInTlsTestCase::test_wrong_sni_hint /usr/lib/python3.10/site-packages/_pytest/threadexception.py:75: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-9 Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/test_ssltransport.py", line 339, in socket_handler with cls.server_context.wrap_socket(sock, server_side=True) as ssock: File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/contrib/test_pyopenssl.py: 44 warnings test/with_dummyserver/test_connectionpool.py: 24 warnings test/with_dummyserver/test_https.py: 39 warnings test/with_dummyserver/test_no_ssl.py: 8 warnings test/with_dummyserver/test_poolmanager.py: 7 warnings test/with_dummyserver/test_proxy_poolmanager.py: 49 warnings /usr/lib/python3.10/site-packages/tornado/ioloop.py:263: DeprecationWarning: There is no current event loop loop = asyncio.get_event_loop() test/contrib/test_pyopenssl.py::TestHTTPS::test_simple /usr/lib/python3.10/site-packages/tornado/platform/asyncio.py:279: DeprecationWarning: There is no current event loop super().initialize(asyncio.get_event_loop(), **kwargs) test/contrib/test_pyopenssl.py: 9 warnings test/with_dummyserver/test_https.py: 8 warnings test/with_dummyserver/test_no_ssl.py: 1 warning test/with_dummyserver/test_proxy_poolmanager.py: 11 warnings /build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py:157: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ctx = ssl.SSLContext(ssl_version) test/contrib/test_pyopenssl.py: 12 warnings test/with_dummyserver/test_connectionpool.py: 6 warnings test/with_dummyserver/test_https.py: 11 warnings test/with_dummyserver/test_no_ssl.py: 2 warnings test/with_dummyserver/test_poolmanager.py: 2 warnings test/with_dummyserver/test_proxy_poolmanager.py: 6 warnings /usr/lib/python3.10/site-packages/tornado/platform/asyncio.py:193: DeprecationWarning: There is no current event loop old_loop = asyncio.get_event_loop() test/contrib/test_pyopenssl.py: 6 warnings test/with_dummyserver/test_https.py: 6 warnings test/with_dummyserver/test_no_ssl.py: 1 warning test/with_dummyserver/test_proxy_poolmanager.py: 1 warning test/with_dummyserver/test_socketlevel.py: 1 warning /build/python-urllib3/src/urllib3-1.26.8/src/urllib3/connectionpool.py:1043: InsecureRequestWarning: Unverified HTTPS request is being made to host 'localhost'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings warnings.warn( test/contrib/test_pyopenssl.py: 3 warnings test/with_dummyserver/test_https.py: 6 warnings test/with_dummyserver/test_socketlevel.py: 1 warning /build/python-urllib3/src/urllib3-1.26.8/test/__init__.py:71: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ctx = ctx_cls(protocol=ssl_.PROTOCOL_TLS) test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_simple test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_simple /build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py:157: DeprecationWarning: ssl.PROTOCOL_TLSv1 is deprecated ctx = ssl.SSLContext(ssl_version) test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_simple test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_simple /build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py:157: DeprecationWarning: ssl.PROTOCOL_TLSv1_1 is deprecated ctx = ssl.SSLContext(ssl_version) test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_simple test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_simple /build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py:157: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated ctx = ssl.SSLContext(ssl_version) test/contrib/test_pyopenssl.py::TestHTTPS_IPv6Addr::test_strip_square_brackets_before_validating[::1] test/contrib/test_pyopenssl.py::TestHTTPS_IPv6Addr::test_strip_square_brackets_before_validating[[::1]] test/with_dummyserver/test_https.py::TestHTTPS_IPv6Addr::test_strip_square_brackets_before_validating[::1] test/with_dummyserver/test_https.py::TestHTTPS_IPv6Addr::test_strip_square_brackets_before_validating[[::1]] /build/python-urllib3/src/urllib3-1.26.8/src/urllib3/connection.py:460: SubjectAltNameWarning: Certificate for ::1 has no `subjectAltName`, falling back to check for a `commonName` for now. This feature is being removed by major browsers and deprecated by RFC 2818. (See https://github.com/urllib3/urllib3/issues/497 for details.) warnings.warn( test/contrib/test_pyopenssl.py: 5 warnings test/with_dummyserver/test_socketlevel.py: 5 warnings /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:175: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() return ssl.wrap_socket( test/contrib/test_pyopenssl.py: 16 warnings test/with_dummyserver/test_socketlevel.py: 21 warnings /usr/lib/python3.10/ssl.py:1433: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated context = SSLContext(ssl_version) test/contrib/test_pyopenssl.py::TestSSL::test_ssl_failure_midway_through_conn test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_failure_midway_through_conn /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1197: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/contrib/test_pyopenssl.py::TestSSL::test_ssl_failure_midway_through_conn /usr/lib/python3.10/site-packages/_pytest/threadexception.py:75: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-56 Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1197, in socket_handler ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:997) warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/contrib/test_pyopenssl.py::TestSSL::test_ssl_read_timeout test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_read_timeout /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1234: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/contrib/test_pyopenssl.py::TestSSL::test_ssl_failed_fingerprint_verification test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_failed_fingerprint_verification test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_failed_fingerprint_verification /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1275: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/contrib/test_pyopenssl.py::TestSSL::test_ssl_failed_fingerprint_verification /usr/lib/python3.10/site-packages/_pytest/threadexception.py:75: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-58 Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1275, in socket_handler ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:997) warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/contrib/test_pyopenssl.py::TestSSL::test_retry_ssl_error test/with_dummyserver/test_socketlevel.py::TestSSL::test_retry_ssl_error /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1322: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/contrib/test_pyopenssl.py::TestSSL::test_retry_ssl_error test/with_dummyserver/test_socketlevel.py::TestSSL::test_retry_ssl_error /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1347: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/contrib/test_pyopenssl.py::TestSSL::test_ssl_load_default_certs_when_empty test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_load_default_certs_when_empty /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1373: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/contrib/test_pyopenssl.py::TestSSL::test_ssl_dont_load_default_certs_when_given test/contrib/test_pyopenssl.py::TestSSL::test_ssl_dont_load_default_certs_when_given test/contrib/test_pyopenssl.py::TestSSL::test_ssl_dont_load_default_certs_when_given test/contrib/test_pyopenssl.py::TestSSL::test_ssl_dont_load_default_certs_when_given test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_dont_load_default_certs_when_given test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_dont_load_default_certs_when_given test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_dont_load_default_certs_when_given test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_dont_load_default_certs_when_given /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1410: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/contrib/test_pyopenssl.py::TestSSL::test_ssl_dont_load_default_certs_when_given /usr/lib/python3.10/site-packages/_pytest/threadexception.py:75: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-60 Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1373, in socket_handler ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/contrib/test_pyopenssl.py::TestSSL::test_ssl_custom_validation_failure_terminates test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_custom_validation_failure_terminates test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_custom_validation_failure_terminates /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1475: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() _ = ssl.wrap_socket( test/contrib/test_socks.py: 17 warnings /build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py:117: NoIPv6Warning: No IPv6 support. Falling back to IPv4. warnings.warn("No IPv6 support. Falling back to IPv4.", NoIPv6Warning) test/contrib/test_socks.py::TestSOCKSWithTLS::test_basic_request /build/python-urllib3/src/urllib3-1.26.8/test/contrib/test_socks.py:681: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated context = better_ssl.SSLContext(ssl.PROTOCOL_SSLv23) test/with_dummyserver/test_connectionpool.py::TestRetry::test_retries_wrong_method_list /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_connectionpool.py:1111: DeprecationWarning: Using 'method_whitelist' with Retry is deprecated and will be removed in v2.0. Use 'allowed_methods' instead retry = Retry(total=1, status_forcelist=[418], method_whitelist=["POST"]) test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_set_ssl_version_to_tls_version /build/python-urllib3/src/urllib3-1.26.8/src/urllib3/util/ssl_.py:290: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated context = SSLContext(ssl_version) test/with_dummyserver/test_socketlevel.py::TestClientCerts::test_client_cert_with_string_password test/with_dummyserver/test_socketlevel.py::TestClientCerts::test_client_cert_with_bytes_password /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:336: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ssl_context = ssl_.SSLContext(ssl_.PROTOCOL_SSLv23) test/with_dummyserver/test_socketlevel.py::TestClientCerts::test_load_keyfile_with_invalid_password /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:355: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated context = ssl_.SSLContext(ssl_.PROTOCOL_SSLv23) test/with_dummyserver/test_socketlevel.py::TestProxyManager::test_connect_reconn test/with_dummyserver/test_socketlevel.py::TestProxyManager::test_connect_reconn /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1078: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/with_dummyserver/test_socketlevel.py::TestProxyManager::test_connect_ipv6_addr /build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py:1130: DeprecationWarning: ssl.wrap_socket() is deprecated, use SSLContext.wrap_socket() ssl_sock = ssl.wrap_socket( test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_failure_midway_through_conn /usr/lib/python3.10/site-packages/_pytest/threadexception.py:75: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-160 Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1197, in socket_handler ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:997) warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_failed_fingerprint_verification /usr/lib/python3.10/site-packages/_pytest/threadexception.py:75: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-163 Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1275, in socket_handler ssl_sock = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:997) warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_custom_validation_failure_terminates /usr/lib/python3.10/site-packages/_pytest/threadexception.py:75: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-171 Traceback (most recent call last): File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1475, in socket_handler _ = ssl.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 1441, in wrap_socket return context.wrap_socket( File "/usr/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 134, in run self.server = self._start_server() File "/build/python-urllib3/src/urllib3-1.26.8/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.8/test/with_dummyserver/test_socketlevel.py", line 1483, in socket_handler assert "alert unknown ca" in str(e) AssertionError: assert 'alert unknown ca' in 'EOF occurred in violation of protocol (_ssl.c:997)' + where 'EOF occurred in violation of protocol (_ssl.c:997)' = str(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:997)')) warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) -- Docs: https://docs.pytest.org/en/stable/warnings.html ===Flaky Test Report=== test_chunks passed 1 out of the required 1 times. Success! test_bytestring_body passed 1 out of the required 1 times. Success! test_unicode_body passed 1 out of the required 1 times. Success! test_empty_body passed 1 out of the required 1 times. Success! test_empty_string_body passed 1 out of the required 1 times. Success! test_empty_iterable_body passed 1 out of the required 1 times. Success! test_removes_duplicate_host_header passed 1 out of the required 1 times. Success! test_provides_default_host_header passed 1 out of the required 1 times. Success! test_provides_default_user_agent_header passed 1 out of the required 1 times. Success! test_preserve_user_agent_header passed 1 out of the required 1 times. Success! test_remove_user_agent_header passed 1 out of the required 1 times. Success! test_provides_default_transfer_encoding_header passed 1 out of the required 1 times. Success! test_preserve_transfer_encoding_header passed 1 out of the required 1 times. Success! test_preserve_chunked_on_retry_after passed 1 out of the required 1 times. Success! test_preserve_chunked_on_redirect passed 1 out of the required 1 times. Success! test_preserve_chunked_on_broken_connection passed 1 out of the required 1 times. Success! test_timeout_float passed 1 out of the required 1 times. Success! test_conn_closed passed 1 out of the required 1 times. Success! test_timeout passed 1 out of the required 1 times. Success! test_connect_timeout passed 1 out of the required 1 times. Success! test_total_applies_connect passed 1 out of the required 1 times. Success! test_total_timeout passed 1 out of the required 1 times. Success! test_create_connection_timeout passed 1 out of the required 1 times. Success! test_get passed 1 out of the required 1 times. Success! test_post_url passed 1 out of the required 1 times. Success! test_urlopen_put passed 1 out of the required 1 times. Success! test_wrong_specific_method passed 1 out of the required 1 times. Success! test_upload passed 1 out of the required 1 times. Success! test_one_name_multiple_values passed 1 out of the required 1 times. Success! test_request_method_body passed 1 out of the required 1 times. Success! test_unicode_upload passed 1 out of the required 1 times. Success! test_nagle passed 1 out of the required 1 times. Success! test_socket_options passed 1 out of the required 1 times. Success! test_disable_default_socket_options passed 1 out of the required 1 times. Success! test_defaults_are_applied passed 1 out of the required 1 times. Success! test_connection_error_retries passed 1 out of the required 1 times. Success! test_timeout_success passed 1 out of the required 1 times. Success! test_tunnel passed 1 out of the required 1 times. Success! test_redirect passed 1 out of the required 1 times. Success! test_bad_connect passed 1 out of the required 1 times. Success! test_keepalive passed 1 out of the required 1 times. Success! test_keepalive_close passed 1 out of the required 1 times. Success! test_post_with_urlencode passed 1 out of the required 1 times. Success! test_post_with_multipart passed 1 out of the required 1 times. Success! test_post_with_multipart__iter__ passed 1 out of the required 1 times. Success! test_check_gzip passed 1 out of the required 1 times. Success! test_check_deflate passed 1 out of the required 1 times. Success! test_bad_decode passed 1 out of the required 1 times. Success! test_connection_count passed 1 out of the required 1 times. Success! test_connection_count_bigpool passed 1 out of the required 1 times. Success! test_partial_response passed 1 out of the required 1 times. Success! test_lazy_load_twice passed 1 out of the required 1 times. Success! test_for_double_release passed 1 out of the required 1 times. Success! test_release_conn_parameter passed 1 out of the required 1 times. Success! test_dns_error passed 1 out of the required 1 times. Success! test_invalid_method_not_allowed[ ] passed 1 out of the required 1 times. Success! test_invalid_method_not_allowed[\r] passed 1 out of the required 1 times. Success! test_invalid_method_not_allowed[\n] passed 1 out of the required 1 times. Success! test_invalid_method_not_allowed[\x00] passed 1 out of the required 1 times. Success! test_percent_encode_invalid_target_chars passed 1 out of the required 1 times. Success! test_source_address passed 1 out of the required 1 times. Success! test_source_address_error passed 1 out of the required 1 times. Success! test_stream_keepalive passed 1 out of the required 1 times. Success! test_read_chunked_short_circuit passed 1 out of the required 1 times. Success! test_read_chunked_on_closed_response passed 1 out of the required 1 times. Success! test_chunked_gzip passed 1 out of the required 1 times. Success! test_cleanup_on_connection_error passed 1 out of the required 1 times. Success! test_mixed_case_hostname passed 1 out of the required 1 times. Success! test_preserves_path_dot_segments passed 1 out of the required 1 times. Success! test_default_user_agent_header passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[True-None] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[True-headers1] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[True-headers2] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[True-headers3] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[True-headers4] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[True-headers5] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[False-None] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[False-headers1] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[False-headers2] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[False-headers3] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[False-headers4] passed 1 out of the required 1 times. Success! test_user_agent_header_not_sent_twice[False-headers5] passed 1 out of the required 1 times. Success! test_no_user_agent_header passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent0-None-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent0-None-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-User-Agent1-None-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-user-agent1-None-None] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[True-None-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[True-None-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[True-None-None-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent0-None-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent0-None-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-User-Agent1-None-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-user-agent1-None-None] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host0-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host0-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host0-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host0-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host0-None] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-Host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host1-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host1-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host1-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host1-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-host1-None] passed 1 out of the required 1 times. Success! test_skip_header[False-None-None-Accept-Encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-None-accept-encoding0] passed 1 out of the required 1 times. Success! test_skip_header[False-None-None-Accept-Encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-None-accept-encoding1] passed 1 out of the required 1 times. Success! test_skip_header[False-None-None-None] passed 1 out of the required 1 times. Success! test_skip_header_non_supported[True-Content-Length] passed 1 out of the required 1 times. Success! test_skip_header_non_supported[True-content-length] passed 1 out of the required 1 times. Success! test_skip_header_non_supported[False-Content-Length] passed 1 out of the required 1 times. Success! test_skip_header_non_supported[False-content-length] passed 1 out of the required 1 times. Success! test_headers_not_modified_by_request[dict-True-True] passed 1 out of the required 1 times. Success! test_headers_not_modified_by_request[dict-True-False] passed 1 out of the required 1 times. Success! test_headers_not_modified_by_request[dict-False-True] passed 1 out of the required 1 times. Success! test_headers_not_modified_by_request[dict-False-False] passed 1 out of the required 1 times. Success! test_headers_not_modified_by_request[HTTPHeaderDict-True-True] passed 1 out of the required 1 times. Success! test_headers_not_modified_by_request[HTTPHeaderDict-True-False] passed 1 out of the required 1 times. Success! test_headers_not_modified_by_request[HTTPHeaderDict-False-True] passed 1 out of the required 1 times. Success! test_headers_not_modified_by_request[HTTPHeaderDict-False-False] passed 1 out of the required 1 times. Success! test_bytes_header passed 1 out of the required 1 times. Success! test_user_agent_non_ascii_user_agent[Sch\xf6nefeld/1.18.00] passed 1 out of the required 1 times. Success! test_user_agent_non_ascii_user_agent[Sch\xf6nefeld/1.18.01] passed 1 out of the required 1 times. Success! test_max_retry passed 1 out of the required 1 times. Success! test_disabled_retry passed 1 out of the required 1 times. Success! test_read_retries passed 1 out of the required 1 times. Success! test_read_total_retries passed 1 out of the required 1 times. Success! test_retries_wrong_whitelist passed 1 out of the required 1 times. Success! test_default_method_whitelist_retried passed 1 out of the required 1 times. Success! test_retries_wrong_method_list passed 1 out of the required 1 times. Success! test_read_retries_unsuccessful passed 1 out of the required 1 times. Success! test_retry_reuse_safe passed 1 out of the required 1 times. Success! test_retry_return_in_response passed 1 out of the required 1 times. Success! test_retry_redirect_history passed 1 out of the required 1 times. Success! test_multi_redirect_history passed 1 out of the required 1 times. Success! test_retry_after passed 1 out of the required 1 times. Success! test_redirect_after passed 1 out of the required 1 times. Success! test_retries_put_filehandle passed 1 out of the required 1 times. Success! test_redirect_put_file passed 1 out of the required 1 times. Success! test_redirect_with_failed_tell passed 1 out of the required 1 times. Success! test_pool_size_retry passed 1 out of the required 1 times. Success! test_pool_size_redirect passed 1 out of the required 1 times. Success! test_simple passed 1 out of the required 1 times. Success! test_dotted_fqdn passed 1 out of the required 1 times. Success! test_client_intermediate passed 1 out of the required 1 times. Success! test_client_no_intermediate passed 1 out of the required 1 times. Success! test_client_key_password passed 1 out of the required 1 times. Success! test_client_encrypted_key_requires_password passed 1 out of the required 1 times. Success! test_verified passed 1 out of the required 1 times. Success! test_verified_with_context passed 1 out of the required 1 times. Success! test_context_combines_with_ca_certs passed 1 out of the required 1 times. Success! test_ca_dir_verified passed 1 out of the required 1 times. Success! test_invalid_common_name passed 1 out of the required 1 times. Success! test_verified_with_bad_ca_certs passed 1 out of the required 1 times. Success! test_verified_without_ca_certs passed 1 out of the required 1 times. Success! test_no_ssl passed 1 out of the required 1 times. Success! test_unverified_ssl passed 1 out of the required 1 times. Success! test_ssl_unverified_with_ca_certs passed 1 out of the required 1 times. Success! test_assert_hostname_false passed 1 out of the required 1 times. Success! test_assert_specific_hostname passed 1 out of the required 1 times. Success! test_server_hostname passed 1 out of the required 1 times. Success! test_assert_fingerprint_md5 passed 1 out of the required 1 times. Success! test_assert_fingerprint_sha1 passed 1 out of the required 1 times. Success! test_assert_fingerprint_sha256 passed 1 out of the required 1 times. Success! test_assert_invalid_fingerprint passed 1 out of the required 1 times. Success! test_verify_none_and_bad_fingerprint passed 1 out of the required 1 times. Success! test_verify_none_and_good_fingerprint passed 1 out of the required 1 times. Success! test_good_fingerprint_and_hostname_mismatch passed 1 out of the required 1 times. Success! test_https_timeout passed 1 out of the required 1 times. Success! test_tunnel passed 1 out of the required 1 times. Success! test_enhanced_timeout passed 1 out of the required 1 times. Success! test_enhanced_ssl_connection passed 1 out of the required 1 times. Success! test_ssl_correct_system_time passed 1 out of the required 1 times. Success! test_ssl_wrong_system_time passed 1 out of the required 1 times. Success! test_set_cert_default_cert_required passed 1 out of the required 1 times. Success! test_sslkeylogfile passed 1 out of the required 1 times. Success! test_sslkeylogfile_empty[None] passed 1 out of the required 1 times. Success! test_sslkeylogfile_empty[] passed 1 out of the required 1 times. Success! test_alpn_default passed 1 out of the required 1 times. Success! test_simple passed 1 out of the required 1 times. Success! test_dotted_fqdn passed 1 out of the required 1 times. Success! test_client_intermediate passed 1 out of the required 1 times. Success! test_client_no_intermediate passed 1 out of the required 1 times. Success! test_client_key_password passed 1 out of the required 1 times. Success! test_client_encrypted_key_requires_password passed 1 out of the required 1 times. Success! test_verified passed 1 out of the required 1 times. Success! test_verified_with_context passed 1 out of the required 1 times. Success! test_context_combines_with_ca_certs passed 1 out of the required 1 times. Success! test_ca_dir_verified passed 1 out of the required 1 times. Success! test_invalid_common_name passed 1 out of the required 1 times. Success! test_verified_with_bad_ca_certs passed 1 out of the required 1 times. Success! test_verified_without_ca_certs passed 1 out of the required 1 times. Success! test_no_ssl passed 1 out of the required 1 times. Success! test_unverified_ssl passed 1 out of the required 1 times. Success! test_ssl_unverified_with_ca_certs passed 1 out of the required 1 times. Success! test_assert_hostname_false passed 1 out of the required 1 times. Success! test_assert_specific_hostname passed 1 out of the required 1 times. Success! test_server_hostname passed 1 out of the required 1 times. Success! test_assert_fingerprint_md5 passed 1 out of the required 1 times. Success! test_assert_fingerprint_sha1 passed 1 out of the required 1 times. Success! test_assert_fingerprint_sha256 passed 1 out of the required 1 times. Success! test_assert_invalid_fingerprint passed 1 out of the required 1 times. Success! test_verify_none_and_bad_fingerprint passed 1 out of the required 1 times. Success! test_verify_none_and_good_fingerprint passed 1 out of the required 1 times. Success! test_good_fingerprint_and_hostname_mismatch passed 1 out of the required 1 times. Success! test_https_timeout passed 1 out of the required 1 times. Success! test_tunnel passed 1 out of the required 1 times. Success! test_enhanced_timeout passed 1 out of the required 1 times. Success! test_enhanced_ssl_connection passed 1 out of the required 1 times. Success! test_ssl_correct_system_time passed 1 out of the required 1 times. Success! test_ssl_wrong_system_time passed 1 out of the required 1 times. Success! test_set_ssl_version_to_tls_version passed 1 out of the required 1 times. Success! test_set_cert_default_cert_required passed 1 out of the required 1 times. Success! test_tls_protocol_name_of_socket passed 1 out of the required 1 times. Success! test_default_tls_version_deprecations passed 1 out of the required 1 times. Success! test_no_tls_version_deprecation_with_ssl_version passed 1 out of the required 1 times. Success! test_no_tls_version_deprecation_with_ssl_context passed 1 out of the required 1 times. Success! test_sslkeylogfile passed 1 out of the required 1 times. Success! test_sslkeylogfile_empty[None] passed 1 out of the required 1 times. Success! test_sslkeylogfile_empty[] passed 1 out of the required 1 times. Success! test_alpn_default passed 1 out of the required 1 times. Success! test_simple passed 1 out of the required 1 times. Success! test_dotted_fqdn passed 1 out of the required 1 times. Success! test_client_intermediate passed 1 out of the required 1 times. Success! test_client_no_intermediate passed 1 out of the required 1 times. Success! test_client_key_password passed 1 out of the required 1 times. Success! test_client_encrypted_key_requires_password passed 1 out of the required 1 times. Success! test_verified passed 1 out of the required 1 times. Success! test_verified_with_context passed 1 out of the required 1 times. Success! test_context_combines_with_ca_certs passed 1 out of the required 1 times. Success! test_ca_dir_verified passed 1 out of the required 1 times. Success! test_invalid_common_name passed 1 out of the required 1 times. Success! test_verified_with_bad_ca_certs passed 1 out of the required 1 times. Success! test_verified_without_ca_certs passed 1 out of the required 1 times. Success! test_no_ssl passed 1 out of the required 1 times. Success! test_unverified_ssl passed 1 out of the required 1 times. Success! test_ssl_unverified_with_ca_certs passed 1 out of the required 1 times. Success! test_assert_hostname_false passed 1 out of the required 1 times. Success! test_assert_specific_hostname passed 1 out of the required 1 times. Success! test_server_hostname passed 1 out of the required 1 times. Success! test_assert_fingerprint_md5 passed 1 out of the required 1 times. Success! test_assert_fingerprint_sha1 passed 1 out of the required 1 times. Success! test_assert_fingerprint_sha256 passed 1 out of the required 1 times. Success! test_assert_invalid_fingerprint passed 1 out of the required 1 times. Success! test_verify_none_and_bad_fingerprint passed 1 out of the required 1 times. Success! test_verify_none_and_good_fingerprint passed 1 out of the required 1 times. Success! test_good_fingerprint_and_hostname_mismatch passed 1 out of the required 1 times. Success! test_https_timeout passed 1 out of the required 1 times. Success! test_tunnel passed 1 out of the required 1 times. Success! test_enhanced_timeout passed 1 out of the required 1 times. Success! test_enhanced_ssl_connection passed 1 out of the required 1 times. Success! test_ssl_correct_system_time passed 1 out of the required 1 times. Success! test_ssl_wrong_system_time passed 1 out of the required 1 times. Success! test_set_ssl_version_to_tls_version passed 1 out of the required 1 times. Success! test_set_cert_default_cert_required passed 1 out of the required 1 times. Success! test_tls_protocol_name_of_socket passed 1 out of the required 1 times. Success! test_default_tls_version_deprecations passed 1 out of the required 1 times. Success! test_no_tls_version_deprecation_with_ssl_version passed 1 out of the required 1 times. Success! test_no_tls_version_deprecation_with_ssl_context passed 1 out of the required 1 times. Success! test_sslkeylogfile passed 1 out of the required 1 times. Success! test_sslkeylogfile_empty[None] passed 1 out of the required 1 times. Success! test_sslkeylogfile_empty[] passed 1 out of the required 1 times. Success! test_alpn_default passed 1 out of the required 1 times. Success! test_warning_for_certs_without_a_san passed 1 out of the required 1 times. Success! test_can_validate_ip_san passed 1 out of the required 1 times. Success! test_strip_square_brackets_before_validating[::1] passed 1 out of the required 1 times. Success! test_strip_square_brackets_before_validating[[::1]] passed 1 out of the required 1 times. Success! test_can_validate_ipv6_san[::1] passed 1 out of the required 1 times. Success! test_can_validate_ipv6_san[[::1]] passed 1 out of the required 1 times. Success! test_simple passed 1 out of the required 1 times. Success! test_simple passed 1 out of the required 1 times. Success! test_redirect passed 1 out of the required 1 times. Success! test_redirect_twice passed 1 out of the required 1 times. Success! test_redirect_to_relative_url passed 1 out of the required 1 times. Success! test_cross_host_redirect passed 1 out of the required 1 times. Success! test_too_many_redirects passed 1 out of the required 1 times. Success! test_redirect_cross_host_remove_headers passed 1 out of the required 1 times. Success! test_redirect_cross_host_no_remove_headers passed 1 out of the required 1 times. Success! test_redirect_cross_host_set_removed_headers passed 1 out of the required 1 times. Success! test_redirect_without_preload_releases_connection passed 1 out of the required 1 times. Success! test_unknown_scheme passed 1 out of the required 1 times. Success! test_raise_on_redirect passed 1 out of the required 1 times. Success! test_raise_on_status passed 1 out of the required 1 times. Success! test_missing_port passed 1 out of the required 1 times. Success! test_headers passed 1 out of the required 1 times. Success! test_http_with_ssl_keywords passed 1 out of the required 1 times. Success! test_http_with_ca_cert_dir passed 1 out of the required 1 times. Success! test_encode_http_target[/echo_uri?q=1#fragment-/echo_uri?q=1] passed 1 out of the required 1 times. Success! test_encode_http_target[/echo_uri?#-/echo_uri?] passed 1 out of the required 1 times. Success! test_encode_http_target[/echo_uri#?-/echo_uri] passed 1 out of the required 1 times. Success! test_encode_http_target[/echo_uri#?#-/echo_uri] passed 1 out of the required 1 times. Success! test_encode_http_target[/echo_uri??#-/echo_uri??] passed 1 out of the required 1 times. Success! test_encode_http_target[/echo_uri?%3f#-/echo_uri?%3F] passed 1 out of the required 1 times. Success! test_encode_http_target[/echo_uri?%3F#-/echo_uri?%3F] passed 1 out of the required 1 times. Success! test_encode_http_target[/echo_uri?[]-/echo_uri?%5B%5D] passed 1 out of the required 1 times. Success! test_ipv6 passed 1 out of the required 1 times. Success! test_basic_proxy passed 1 out of the required 1 times. Success! test_https_proxy passed 1 out of the required 1 times. Success! test_https_proxy_with_proxy_ssl_context passed 1 out of the required 1 times. Success! test_https_proxy_pyopenssl_not_supported passed 1 out of the required 1 times. Success! test_https_proxy_forwarding_for_https passed 1 out of the required 1 times. Success! test_nagle_proxy passed 1 out of the required 1 times. Success! test_proxy_conn_fail passed 1 out of the required 1 times. Success! test_oldapi passed 1 out of the required 1 times. Success! test_proxy_verified passed 1 out of the required 1 times. Success! test_proxy_verified_warning passed 1 out of the required 1 times. Success! test_redirect passed 1 out of the required 1 times. Success! test_cross_host_redirect passed 1 out of the required 1 times. Success! test_cross_protocol_redirect passed 1 out of the required 1 times. Success! test_headers passed 1 out of the required 1 times. Success! test_https_headers passed 1 out of the required 1 times. Success! test_https_headers_forwarding_for_https passed 1 out of the required 1 times. Success! test_headerdict passed 1 out of the required 1 times. Success! test_proxy_pooling passed 1 out of the required 1 times. Success! test_proxy_pooling_ext passed 1 out of the required 1 times. Success! test_forwarding_proxy_request_timeout[http-http-False] passed 1 out of the required 1 times. Success! test_forwarding_proxy_request_timeout[https-http-False] passed 1 out of the required 1 times. Success! test_forwarding_proxy_request_timeout[https-https-True] passed 1 out of the required 1 times. Success! test_tunneling_proxy_request_timeout[http-https] passed 1 out of the required 1 times. Success! test_tunneling_proxy_request_timeout[https-https] passed 1 out of the required 1 times. Success! test_forwarding_proxy_connect_timeout[http-http-False] passed 1 out of the required 1 times. Success! test_forwarding_proxy_connect_timeout[https-http-False] passed 1 out of the required 1 times. Success! test_forwarding_proxy_connect_timeout[https-https-True] passed 1 out of the required 1 times. Success! test_tunneling_proxy_connect_timeout[http-https] passed 1 out of the required 1 times. Success! test_tunneling_proxy_connect_timeout[https-https] passed 1 out of the required 1 times. Success! test_https_proxy_tls_error[http-False] passed 1 out of the required 1 times. Success! test_https_proxy_tls_error[https-False] passed 1 out of the required 1 times. Success! test_https_proxy_tls_error[https-True] passed 1 out of the required 1 times. Success! test_proxy_https_target_tls_error[http-False] passed 1 out of the required 1 times. Success! test_proxy_https_target_tls_error[https-False] passed 1 out of the required 1 times. Success! test_proxy_https_target_tls_error[https-True] passed 1 out of the required 1 times. Success! test_scheme_host_case_insensitive passed 1 out of the required 1 times. Success! test_invalid_schema[127.0.0.1-Proxy URL had no scheme, should start with http:// or https://] passed 1 out of the required 1 times. Success! test_invalid_schema[localhost:8080-Proxy URL had no scheme, should start with http:// or https://] passed 1 out of the required 1 times. Success! test_invalid_schema[ftp://google.com-Proxy URL had unsupported scheme ftp, should use http:// or https://] passed 1 out of the required 1 times. Success! test_basic_ipv6_proxy passed 1 out of the required 1 times. Success! test_https_proxy_hostname_verification passed 1 out of the required 1 times. Success! test_https_proxy_ipv4_san passed 1 out of the required 1 times. Success! test_https_proxy_ipv6_san passed 1 out of the required 1 times. Success! test_https_proxy_common_name_warning passed 1 out of the required 1 times. Success! test_multi_setcookie passed 1 out of the required 1 times. Success! test_hostname_in_first_request_packet passed 1 out of the required 1 times. Success! test_alpn_protocol_in_first_request_packet passed 1 out of the required 1 times. Success! test_client_certs_two_files passed 1 out of the required 1 times. Success! test_client_certs_one_file passed 1 out of the required 1 times. Success! test_missing_client_certs_raises_error passed 1 out of the required 1 times. Success! test_client_cert_with_string_password passed 1 out of the required 1 times. Success! test_client_cert_with_bytes_password passed 1 out of the required 1 times. Success! test_load_keyfile_with_invalid_password passed 1 out of the required 1 times. Success! test_recovery_when_server_closes_connection passed 1 out of the required 1 times. Success! test_connection_refused passed 1 out of the required 1 times. Success! test_connection_read_timeout passed 1 out of the required 1 times. Success! test_read_timeout_dont_retry_method_not_in_allowlist passed 1 out of the required 1 times. Success! test_https_connection_read_timeout passed 1 out of the required 1 times. Success! test_timeout_errors_cause_retries passed 1 out of the required 1 times. Success! test_delayed_body_read_timeout passed 1 out of the required 1 times. Success! test_delayed_body_read_timeout_with_preload passed 1 out of the required 1 times. Success! test_incomplete_response passed 1 out of the required 1 times. Success! test_retry_weird_http_version passed 1 out of the required 1 times. Success! test_connection_cleanup_on_read_timeout passed 1 out of the required 1 times. Success! test_connection_cleanup_on_protocol_error_during_read passed 1 out of the required 1 times. Success! test_connection_closed_on_read_timeout_preload_false passed 1 out of the required 1 times. Success! test_closing_response_actually_closes_connection passed 1 out of the required 1 times. Success! test_release_conn_param_is_respected_after_timeout_retry passed 1 out of the required 1 times. Success! test_simple passed 1 out of the required 1 times. Success! test_headers passed 1 out of the required 1 times. Success! test_retries passed 1 out of the required 1 times. Success! test_connect_reconn passed 1 out of the required 1 times. Success! test_connect_ipv6_addr passed 1 out of the required 1 times. Success! test_https_proxymanager_connected_to_http_proxy[http] passed 1 out of the required 1 times. Success! test_https_proxymanager_connected_to_http_proxy[https] passed 1 out of the required 1 times. Success! test_ssl_failure_midway_through_conn passed 1 out of the required 1 times. Success! test_ssl_read_timeout passed 1 out of the required 1 times. Success! test_ssl_failed_fingerprint_verification failed (1 runs remaining out of 2). assert False + where False = isinstance(ReadTimeoutError("HTTPSConnectionPool(host='localhost', port=40335): Read timed out. (read timeout=0.01)"), SSLError) + where ReadTimeoutError("HTTPSConnectionPool(host='localhost', port=40335): Read timed out. (read timeout=0.01)") = MaxRetryError('HTTPSConnectionPool(host=\'localhost\', port=40335): Max retries exceeded with url: / (Caused by ReadTimeoutError("HTTPSConnectionPool(host=\'localhost\', port=40335): Read timed out. (read timeout=0.01)"))').reason + where MaxRetryError('HTTPSConnectionPool(host=\'localhost\', port=40335): Max retries exceeded with url: / (Caused by ReadTimeoutError("HTTPSConnectionPool(host=\'localhost\', port=40335): Read timed out. (read timeout=0.01)"))') = .value [] test_ssl_failed_fingerprint_verification passed 1 out of the required 1 times. Success! test_retry_ssl_error passed 1 out of the required 1 times. Success! test_ssl_load_default_certs_when_empty passed 1 out of the required 1 times. Success! test_ssl_dont_load_default_certs_when_given passed 1 out of the required 1 times. Success! test_load_verify_locations_exception passed 1 out of the required 1 times. Success! test_ssl_custom_validation_failure_terminates failed (1 runs remaining out of 2). HTTPSConnectionPool(host='localhost', port=40997): Read timed out. (read timeout=0.01) [, , , , , , , , ] test_ssl_custom_validation_failure_terminates failed; it passed 0 out of the required 1 times. HTTPSConnectionPool(host='localhost', port=46003): Read timed out. (read timeout=0.01) [, , , , , , , , ] test_bad_statusline passed 1 out of the required 1 times. Success! test_unknown_protocol passed 1 out of the required 1 times. Success! test_httplib_headers_case_insensitive passed 1 out of the required 1 times. Success! test_headers_are_sent_with_the_original_case passed 1 out of the required 1 times. Success! test_ua_header_can_be_overridden passed 1 out of the required 1 times. Success! test_request_headers_are_sent_in_the_original_order passed 1 out of the required 1 times. Success! test_request_host_header_ignores_fqdn_dot passed 1 out of the required 1 times. Success! test_response_headers_are_returned_in_the_original_order passed 1 out of the required 1 times. Success! test_header_without_name passed 1 out of the required 1 times. Success! test_header_without_name_or_value passed 1 out of the required 1 times. Success! test_header_without_colon_or_value passed 1 out of the required 1 times. Success! test_header_text_plain passed 1 out of the required 1 times. Success! test_header_message_rfc822 passed 1 out of the required 1 times. Success! test_chunked_head_response_does_not_hang passed 1 out of the required 1 times. Success! test_empty_head_response_does_not_hang passed 1 out of the required 1 times. Success! test_stream_none_unchunked_response_does_not_hang passed 1 out of the required 1 times. Success! test_enforce_content_length_get passed 1 out of the required 1 times. Success! test_enforce_content_length_no_body passed 1 out of the required 1 times. Success! test_pool_size_retry_drain_fail passed 1 out of the required 1 times. Success! test_ignore_broken_pipe_errors passed 1 out of the required 1 times. Success! test_multipart_assert_header_parsing_no_defects passed 1 out of the required 1 times. Success! ===End Flaky Test Report=== =========================== short test summary info ============================ FAILED test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_custom_validation_failure_terminates = 1 failed, 1482 passed, 406 skipped, 54 deselected, 397 warnings in 92.17s (0:01:32) = ==> ERROR: A failure occurred in check().  Aborting...