==> Building on incineroar ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-urllib3 ./ .SRCINFO 1,349 100% 0.00kB/s 0:00:00 1,349 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=4/6) .nvchecker.toml 92 100% 89.84kB/s 0:00:00 92 100% 89.84kB/s 0:00:00 (xfr#2, to-chk=3/6) LICENSE 1,401 100% 1.34MB/s 0:00:00 1,401 100% 1.34MB/s 0:00:00 (xfr#3, to-chk=2/6) PKGBUILD 5,411 100% 5.16MB/s 0:00:00 5,411 100% 5.16MB/s 0:00:00 (xfr#4, to-chk=1/6) python-urllib3-1.26.19-1.log 617 100% 602.54kB/s 0:00:00 617 100% 602.54kB/s 0:00:00 (xfr#5, to-chk=0/6) sent 3,624 bytes received 160 bytes 2,522.67 bytes/sec total size is 8,450 speedup is 2.23 ==> Running extra-riscv64-build -- -d /home/felix/packages/riscv64-pkg-cache:/var/cache/pacman/pkg -l root3 on remote host... [?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [root3]...done ==> Making package: python-urllib3 1.26.19-1 (Tue Jul 23 14:43:52 2024) ==> Retrieving sources...  -> Downloading python-urllib3-1.26.19.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 42349 0 42349 0 0 37796 0 --:--:-- 0:00:01 --:--:-- 37796 100 269k 0 269k 0 0 199k 0 --:--:-- 0:00:01 --:--:-- 988k ==> Validating source files with sha512sums... python-urllib3-1.26.19.tar.gz ... Passed ==> Making package: python-urllib3 1.26.19-1 (Tue Jul 23 14:44:32 2024) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (52) New Version Net Change Download Size extra/python-astroid 3.2.2-1 3.24 MiB 0.48 MiB extra/python-autocommand 2.2.2-6 0.08 MiB extra/python-cffi 1.16.0-2 1.32 MiB extra/python-charset-normalizer 3.3.2-2 0.43 MiB extra/python-colorama 0.4.6-3 0.25 MiB 0.05 MiB extra/python-dill 0.3.8-3 1.11 MiB 0.22 MiB extra/python-fastjsonschema 2.20.0-1 0.27 MiB extra/python-freezegun 1.5.1-1 0.15 MiB 0.04 MiB extra/python-inflect 7.3.1-1 0.36 MiB extra/python-iniconfig 2.0.0-5 0.04 MiB extra/python-isort 5.13.2-3 0.91 MiB 0.17 MiB extra/python-jaraco.context 4.3.0-4 0.03 MiB extra/python-jaraco.functools 4.0.1-1 0.07 MiB extra/python-jaraco.text 3.14.0-1 0.08 MiB 0.02 MiB extra/python-mccabe 0.7.0-7 0.05 MiB 0.02 MiB extra/python-more-itertools 10.3.0-1 0.63 MiB extra/python-ordered-set 4.1.0-5 0.06 MiB extra/python-packaging 24.1-1 0.49 MiB extra/python-platformdirs 4.2.2-1 0.24 MiB extra/python-pluggy 1.5.0-1 0.20 MiB extra/python-pycparser 2.22-2 1.71 MiB extra/python-pylint 3.2.5-1 5.76 MiB 1.17 MiB extra/python-pyproject-hooks 1.1.0-1 0.10 MiB extra/python-requests 2.32.3-1 0.60 MiB 0.12 MiB extra/python-retrying 1.3.4-3 0.05 MiB 0.02 MiB extra/python-six 1.16.0-9 0.11 MiB extra/python-toml 0.10.2-10 0.18 MiB 0.04 MiB extra/python-tomli 2.0.1-4 0.10 MiB extra/python-tomlkit 0.13.0-1 0.56 MiB 0.10 MiB extra/python-trove-classifiers 2024.7.2-1 0.12 MiB 0.02 MiB extra/python-typeguard 4.3.0-1 0.41 MiB extra/python-typing_extensions 4.12.2-1 0.41 MiB extra/python-urllib3 1.26.18-3 1.26 MiB extra/python-validate-pyproject 0.18-1 0.33 MiB core/python-brotli 1.1.0-2 0.80 MiB 0.37 MiB extra/python-build 1.2.1-3 0.19 MiB extra/python-certifi 2024.07.04-1 0.02 MiB 0.01 MiB extra/python-cryptography 42.0.6-1 4.51 MiB extra/python-dateutil 2.9.0-5 0.99 MiB extra/python-flaky 3.8.1-1 0.15 MiB extra/python-gcp-devrel-py-tools 0.0.16-7 0.13 MiB 0.03 MiB extra/python-idna 3.7-1 0.84 MiB 0.10 MiB extra/python-installer 0.7.0-8 0.18 MiB extra/python-pyopenssl 24.1.0-1 0.72 MiB 0.10 MiB extra/python-pysocks 1.7.1-9 0.13 MiB 0.03 MiB extra/python-pytest-freezegun 0.4.2-8 0.01 MiB 0.01 MiB extra/python-pytest-timeout 2.3.1-2 0.08 MiB 0.02 MiB extra/python-pytest7 7.4.4-3 3.74 MiB 0.66 MiB extra/python-setuptools 1:69.0.3-6 4.39 MiB extra/python-tornado 6.4.1-1 5.61 MiB 0.82 MiB extra/python-trustme 1.1.0-3 0.09 MiB 0.02 MiB extra/python-wheel 0.43.0-4 0.25 MiB Total Download Size: 4.62 MiB Total Installed Size: 44.56 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pylint-3.2.5-1-any downloading... python-tornado-6.4.1-1-riscv64 downloading... python-pytest7-7.4.4-3-any downloading... python-astroid-3.2.2-1-any downloading... python-brotli-1.1.0-2-riscv64 downloading... python-dill-0.3.8-3-any downloading... python-isort-5.13.2-3-any downloading... python-requests-2.32.3-1-any downloading... python-pyopenssl-24.1.0-1-any downloading... python-tomlkit-0.13.0-1-any downloading... python-idna-3.7-1-any downloading... python-colorama-0.4.6-3-any downloading... python-toml-0.10.2-10-any downloading... python-freezegun-1.5.1-1-any downloading... python-pysocks-1.7.1-9-any downloading... python-gcp-devrel-py-tools-0.0.16-7-any downloading... python-pytest-timeout-2.3.1-2-any downloading... python-trustme-1.1.0-3-any downloading... python-jaraco.text-3.14.0-1-any downloading... python-trove-classifiers-2024.7.2-1-any downloading... python-retrying-1.3.4-3-any downloading... python-mccabe-0.7.0-7-any downloading... python-certifi-2024.07.04-1-any downloading... python-pytest-freezegun-0.4.2-8-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-packaging... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-typing_extensions... installing python-typeguard... installing python-inflect... installing python-jaraco.text... installing python-ordered-set... installing python-platformdirs... installing python-tomli... installing python-fastjsonschema... installing python-trove-classifiers... installing python-validate-pyproject... installing python-setuptools... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures installing python-brotli... installing python-certifi... installing python-pycparser... installing python-cffi... Optional dependencies for python-cffi python-setuptools: "limited api" version checking in cffi.setuptools_ext [installed] installing python-cryptography... installing python-six... installing python-dateutil... installing python-flaky... installing python-charset-normalizer... installing python-idna... installing python-urllib3... Optional dependencies for python-urllib3 python-brotli: Brotli support [installed] python-certifi: security support [installed] python-cryptography: security support [installed] python-idna: security support [installed] python-pyopenssl: security support [pending] python-pysocks: SOCKS support [pending] installing python-requests... Optional dependencies for python-requests python-chardet: alternative character encoding library python-pysocks: SOCKS proxy support [pending] installing python-retrying... installing python-astroid... installing python-colorama... installing python-dill... Optional dependencies for python-dill python-objgraph: graph support installing python-toml... installing python-isort... installing python-mccabe... installing python-tomlkit... installing python-pylint... Optional dependencies for python-pylint graphviz: Enable output formats other than dot or vcg installing python-gcp-devrel-py-tools... installing python-pyopenssl... installing python-pysocks... installing python-iniconfig... installing python-pluggy... installing python-pytest7... installing python-freezegun... installing python-pytest-freezegun... installing python-pytest-timeout... installing python-tornado... Optional dependencies for python-tornado python-pycurl: for tornado.curl_httpclient python-pycares: an alternative non-blocking DNS resolver python-twisted: for tornado.platform.twisted installing python-trustme... [?25h==> Retrieving sources...  -> Found python-urllib3-1.26.19.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting python-urllib3-1.26.19.tar.gz with bsdtar ==> Starting prepare()... ==> Starting build()... * Getting build dependencies for wheel... /usr/lib/python3.12/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options !! ******************************************************************************** Usage of dash-separated 'provides-extra' will not be supported in future versions. Please use the underscore name 'provides_extra' instead. By 2024-Sep-26, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. ******************************************************************************** !! opt = self.warn_dash_deprecation(opt, section) /usr/lib/python3.12/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options !! ******************************************************************************** Usage of dash-separated 'requires-dist' will not be supported in future versions. Please use the underscore name 'requires_dist' instead. By 2024-Sep-26, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. ******************************************************************************** !! opt = self.warn_dash_deprecation(opt, section) 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' warning: no previously-included files matching '*' found under directory 'docs/_build' adding license file 'LICENSE.txt' writing manifest file 'src/urllib3.egg-info/SOURCES.txt' * Building wheel... /usr/lib/python3.12/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options !! ******************************************************************************** Usage of dash-separated 'provides-extra' will not be supported in future versions. Please use the underscore name 'provides_extra' instead. By 2024-Sep-26, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. ******************************************************************************** !! opt = self.warn_dash_deprecation(opt, section) /usr/lib/python3.12/site-packages/setuptools/dist.py:472: SetuptoolsDeprecationWarning: Invalid dash-separated options !! ******************************************************************************** Usage of dash-separated 'requires-dist' will not be supported in future versions. Please use the underscore name 'requires_dist' instead. By 2024-Sep-26, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details. ******************************************************************************** !! opt = self.warn_dash_deprecation(opt, section) running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/urllib3 copying src/urllib3/poolmanager.py -> build/lib/urllib3 copying src/urllib3/__init__.py -> build/lib/urllib3 copying src/urllib3/filepost.py -> build/lib/urllib3 copying src/urllib3/response.py -> build/lib/urllib3 copying src/urllib3/connectionpool.py -> build/lib/urllib3 copying src/urllib3/_collections.py -> build/lib/urllib3 copying src/urllib3/_version.py -> build/lib/urllib3 copying src/urllib3/connection.py -> build/lib/urllib3 copying src/urllib3/request.py -> build/lib/urllib3 copying src/urllib3/exceptions.py -> build/lib/urllib3 copying src/urllib3/fields.py -> build/lib/urllib3 creating build/lib/urllib3/packages copying src/urllib3/packages/six.py -> build/lib/urllib3/packages copying src/urllib3/packages/__init__.py -> build/lib/urllib3/packages creating build/lib/urllib3/packages/backports copying src/urllib3/packages/backports/__init__.py -> build/lib/urllib3/packages/backports copying src/urllib3/packages/backports/makefile.py -> build/lib/urllib3/packages/backports copying src/urllib3/packages/backports/weakref_finalize.py -> build/lib/urllib3/packages/backports creating build/lib/urllib3/contrib copying src/urllib3/contrib/ntlmpool.py -> build/lib/urllib3/contrib copying src/urllib3/contrib/__init__.py -> build/lib/urllib3/contrib copying src/urllib3/contrib/pyopenssl.py -> build/lib/urllib3/contrib copying src/urllib3/contrib/securetransport.py -> build/lib/urllib3/contrib copying src/urllib3/contrib/_appengine_environ.py -> build/lib/urllib3/contrib copying src/urllib3/contrib/socks.py -> build/lib/urllib3/contrib copying src/urllib3/contrib/appengine.py -> build/lib/urllib3/contrib creating build/lib/urllib3/contrib/_securetransport copying src/urllib3/contrib/_securetransport/__init__.py -> build/lib/urllib3/contrib/_securetransport copying src/urllib3/contrib/_securetransport/bindings.py -> build/lib/urllib3/contrib/_securetransport copying src/urllib3/contrib/_securetransport/low_level.py -> build/lib/urllib3/contrib/_securetransport creating build/lib/urllib3/util copying src/urllib3/util/ssl_match_hostname.py -> build/lib/urllib3/util copying src/urllib3/util/__init__.py -> build/lib/urllib3/util copying src/urllib3/util/ssltransport.py -> build/lib/urllib3/util copying src/urllib3/util/response.py -> build/lib/urllib3/util copying src/urllib3/util/wait.py -> build/lib/urllib3/util copying src/urllib3/util/timeout.py -> build/lib/urllib3/util copying src/urllib3/util/connection.py -> build/lib/urllib3/util copying src/urllib3/util/queue.py -> build/lib/urllib3/util copying src/urllib3/util/request.py -> build/lib/urllib3/util copying src/urllib3/util/retry.py -> build/lib/urllib3/util copying src/urllib3/util/proxy.py -> build/lib/urllib3/util copying src/urllib3/util/url.py -> build/lib/urllib3/util copying src/urllib3/util/ssl_.py -> build/lib/urllib3/util installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64 creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/urllib3 creating build/bdist.linux-riscv64/wheel/urllib3/contrib copying build/lib/urllib3/contrib/ntlmpool.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib copying build/lib/urllib3/contrib/__init__.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib copying build/lib/urllib3/contrib/pyopenssl.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib copying build/lib/urllib3/contrib/securetransport.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib copying build/lib/urllib3/contrib/_appengine_environ.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib copying build/lib/urllib3/contrib/socks.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib copying build/lib/urllib3/contrib/appengine.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib creating build/bdist.linux-riscv64/wheel/urllib3/contrib/_securetransport copying build/lib/urllib3/contrib/_securetransport/__init__.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib/_securetransport copying build/lib/urllib3/contrib/_securetransport/bindings.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib/_securetransport copying build/lib/urllib3/contrib/_securetransport/low_level.py -> build/bdist.linux-riscv64/wheel/urllib3/contrib/_securetransport copying build/lib/urllib3/poolmanager.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/__init__.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/filepost.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/response.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/connectionpool.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/_collections.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/_version.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/connection.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/request.py -> build/bdist.linux-riscv64/wheel/urllib3 creating build/bdist.linux-riscv64/wheel/urllib3/packages copying build/lib/urllib3/packages/six.py -> build/bdist.linux-riscv64/wheel/urllib3/packages copying build/lib/urllib3/packages/__init__.py -> build/bdist.linux-riscv64/wheel/urllib3/packages creating build/bdist.linux-riscv64/wheel/urllib3/packages/backports copying build/lib/urllib3/packages/backports/__init__.py -> build/bdist.linux-riscv64/wheel/urllib3/packages/backports copying build/lib/urllib3/packages/backports/makefile.py -> build/bdist.linux-riscv64/wheel/urllib3/packages/backports copying build/lib/urllib3/packages/backports/weakref_finalize.py -> build/bdist.linux-riscv64/wheel/urllib3/packages/backports copying build/lib/urllib3/exceptions.py -> build/bdist.linux-riscv64/wheel/urllib3 copying build/lib/urllib3/fields.py -> build/bdist.linux-riscv64/wheel/urllib3 creating build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/ssl_match_hostname.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/__init__.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/ssltransport.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/response.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/wait.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/timeout.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/connection.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/queue.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/request.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/retry.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/proxy.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/url.py -> build/bdist.linux-riscv64/wheel/urllib3/util copying build/lib/urllib3/util/ssl_.py -> build/bdist.linux-riscv64/wheel/urllib3/util running install_egg_info running 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 reading manifest file 'src/urllib3.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'Makefile' warning: no previously-included files matching '*' found under directory 'docs/_build' adding license file 'LICENSE.txt' writing manifest file 'src/urllib3.egg-info/SOURCES.txt' Copying src/urllib3.egg-info to build/bdist.linux-riscv64/wheel/urllib3-1.26.19-py3.12.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/urllib3-1.26.19.dist-info/WHEEL creating '/build/python-urllib3/src/urllib3-1.26.19/dist/.tmp-d803072c/urllib3-1.26.19-py2.py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'urllib3/__init__.py' adding 'urllib3/_collections.py' adding 'urllib3/_version.py' adding 'urllib3/connection.py' adding 'urllib3/connectionpool.py' adding 'urllib3/exceptions.py' adding 'urllib3/fields.py' adding 'urllib3/filepost.py' adding 'urllib3/poolmanager.py' adding 'urllib3/request.py' adding 'urllib3/response.py' adding 'urllib3/contrib/__init__.py' adding 'urllib3/contrib/_appengine_environ.py' adding 'urllib3/contrib/appengine.py' adding 'urllib3/contrib/ntlmpool.py' adding 'urllib3/contrib/pyopenssl.py' adding 'urllib3/contrib/securetransport.py' adding 'urllib3/contrib/socks.py' adding 'urllib3/contrib/_securetransport/__init__.py' adding 'urllib3/contrib/_securetransport/bindings.py' adding 'urllib3/contrib/_securetransport/low_level.py' adding 'urllib3/packages/__init__.py' adding 'urllib3/packages/six.py' adding 'urllib3/packages/backports/__init__.py' adding 'urllib3/packages/backports/makefile.py' adding 'urllib3/packages/backports/weakref_finalize.py' adding 'urllib3/util/__init__.py' adding 'urllib3/util/connection.py' adding 'urllib3/util/proxy.py' adding 'urllib3/util/queue.py' adding 'urllib3/util/request.py' adding 'urllib3/util/response.py' adding 'urllib3/util/retry.py' adding 'urllib3/util/ssl_.py' adding 'urllib3/util/ssl_match_hostname.py' adding 'urllib3/util/ssltransport.py' adding 'urllib3/util/timeout.py' adding 'urllib3/util/url.py' adding 'urllib3/util/wait.py' adding 'urllib3-1.26.19.dist-info/LICENSE.txt' adding 'urllib3-1.26.19.dist-info/METADATA' adding 'urllib3-1.26.19.dist-info/WHEEL' adding 'urllib3-1.26.19.dist-info/top_level.txt' adding 'urllib3-1.26.19.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Successfully built urllib3-1.26.19-py2.py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.12.4, pytest-7.4.4, pluggy-1.5.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/python-urllib3/src/urllib3-1.26.19 configfile: setup.cfg plugins: timeout-2.3.1, freezegun-0.4.2, flaky-3.8.1, typeguard-4.3.0 collecting ... collected 1996 items / 35 deselected / 1961 selected test/test_collections.py::TestLRUContainer::test_maxsize PASSED [ 0%] test/test_collections.py::TestLRUContainer::test_expire PASSED [ 0%] test/test_collections.py::TestLRUContainer::test_same_key PASSED [ 0%] test/test_collections.py::TestLRUContainer::test_access_ordering PASSED [ 0%] test/test_collections.py::TestLRUContainer::test_delete PASSED [ 0%] test/test_collections.py::TestLRUContainer::test_get PASSED [ 0%] test/test_collections.py::TestLRUContainer::test_disposal PASSED [ 0%] test/test_collections.py::TestLRUContainer::test_iter PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_create_from_kwargs PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_create_from_dict PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_create_from_iterator PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_create_from_list PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_create_from_headerdict PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_setitem PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_update PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_delitem PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_add_well_known_multiheader PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_add_comma_separated_multiheader PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_extend_from_list PASSED [ 0%] test/test_collections.py::TestHTTPHeaderDict::test_extend_from_dict PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_extend_from_container PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_extend_from_headerdict PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_extend_with_wrong_number_of_args_is_typeerror[args0] PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_extend_with_wrong_number_of_args_is_typeerror[args1] PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_copy PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_getlist PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_getlist_after_copy PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_equal PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_not_equal PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_pop PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_discard PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_len PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_repr PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_items PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_dict_conversion PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_string_enforcement PASSED [ 1%] test/test_collections.py::TestHTTPHeaderDict::test_from_httplib_py2 SKIPPED [ 1%] test/test_compatibility.py::TestVersionCompatibility::test_connection_strict PASSED [ 1%] test/test_compatibility.py::TestVersionCompatibility::test_connection_source_address PASSED [ 1%] test/test_compatibility.py::TestCookiejar::test_extract PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_no_cert PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_empty_cert PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_match PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_ipaddress_none PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_mismatch PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_ip_address_ipv6 PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_dns_with_brackets_doesnt_match PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_ip_address_ipv6_brackets PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_ip_address PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_no_dns PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_startwith_wildcard PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_dnsname PASSED [ 2%] test/test_connection.py::TestConnection::test_match_hostname_include_wildcard PASSED [ 2%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://google.com/-/] PASSED [ 2%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://google.com/-http://google.com/] PASSED [ 2%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://google.com/-http://google.com] PASSED [ 2%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://google.com/-http://google.com/abra/cadabra] PASSED [ 2%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://google.com:42/-http://google.com:42/abracadabra] PASSED [ 2%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://google.com:80/-http://google.com/abracadabra] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://google.com/-http://google.com:80/abracadabra] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_same_host[https://google.com:443/-https://google.com/abracadabra] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_same_host[https://google.com/-https://google.com:443/abracadabra] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://[2607:f8b0:4005:805::200e%25eth0]/-http://[2607:f8b0:4005:805::200e%eth0]/] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_same_host[https://[2607:f8b0:4005:805::200e%25eth0]:443/-https://[2607:f8b0:4005:805::200e%eth0]:443/] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://[::1]/-http://[::1]] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_same_host[http://[2001:558:fc00:200:f816:3eff:fef9:b954%lo]/-http://[2001:558:fc00:200:f816:3eff:fef9:b954%25lo]] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[https://google.com/-http://google.com/] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://google.com/-https://google.com/] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://yahoo.com/-http://google.com/] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://google.com:42-https://google.com/abracadabra] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://google.com-https://google.net/] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://google.com:42-http://google.com] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[https://google.com:42-https://google.com] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://google.com:443-http://google.com] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[https://google.com:80-https://google.com] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://google.com:443-https://google.com] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[https://google.com:80-http://google.com] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[https://google.com:443-http://google.com] PASSED [ 3%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://google.com:80-https://google.com] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host[http://[dead::beef]-https://[dead::beef%en5]/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_http[google.com-/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_http[google.com-http://google.com/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_http[google.com-http://google.com] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_http[google.com-http://google.com/abra/cadabra] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_http[google.com-http://google.com:80/abracadabra] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_https[google.com-/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_https[google.com-https://google.com/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_https[google.com-https://google.com] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_https[google.com-https://google.com/abra/cadabra] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_no_port_https[google.com-https://google.com:443/abracadabra] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_no_port_http[google.com-https://google.com/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_no_port_http[yahoo.com-http://google.com/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_no_port_http[google.com-https://google.net/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_no_port_http[google.com-http://google.com./] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_no_port_https[google.com-http://google.com/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_no_port_https[yahoo.com-https://google.com/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_no_port_https[google.com-https://google.net/] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_no_port_https[google.com-https://google.com./] PASSED [ 4%] test/test_connectionpool.py::TestConnectionPool::test_same_host_custom_protocol[%2Fvar%2Frun%2Fdocker.sock-http+unix://%2Fvar%2Frun%2Fdocker.sock] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_same_host_custom_protocol[%2Fvar%2Frun%2Fdocker.sock-http+unix://%2Fvar%2Frun%2Fdocker.sock/] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_same_host_custom_protocol[%2Fvar%2Frun%2Fdocker.sock-http+unix://%2Fvar%2Frun%2Fdocker.sock/abracadabra] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_same_host_custom_protocol[%2Ftmp%2FTEST.sock-http+unix://%2Ftmp%2FTEST.sock] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_same_host_custom_protocol[%2Ftmp%2FTEST.sock-http+unix://%2Ftmp%2FTEST.sock/] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_same_host_custom_protocol[%2Ftmp%2FTEST.sock-http+unix://%2Ftmp%2FTEST.sock/abracadabra] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_custom_protocol[%2Ftmp%2Ftest.sock-http+unix://%2Ftmp%2FTEST.sock] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_custom_protocol[%2Ftmp%2Ftest.sock-http+unix://%2Ftmp%2FTEST.sock/] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_custom_protocol[%2Ftmp%2Ftest.sock-http+unix://%2Ftmp%2FTEST.sock/abracadabra] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_not_same_host_custom_protocol[%2Fvar%2Frun%2Fdocker.sock-http+unix://%2Ftmp%2FTEST.sock] PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_max_connections PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_pool_edgecases PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_exception_str PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_retry_exception_str PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_pool_size PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_empty_does_not_put_conn PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_assert_same_host PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_pool_close PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_pool_close_twice PASSED [ 5%] test/test_connectionpool.py::TestConnectionPool::test_pool_timeouts PASSED [ 6%] test/test_connectionpool.py::TestConnectionPool::test_no_host PASSED [ 6%] test/test_connectionpool.py::TestConnectionPool::test_contextmanager PASSED [ 6%] test/test_connectionpool.py::TestConnectionPool::test_absolute_url PASSED [ 6%] test/test_connectionpool.py::TestConnectionPool::test_ca_certs_default_cert_required PASSED [ 6%] test/test_connectionpool.py::TestConnectionPool::test_cleanup_on_extreme_connection_error PASSED [ 6%] test/test_connectionpool.py::TestConnectionPool::test_release_conn_param_is_respected_after_http_error_retry PASSED [ 6%] test/test_connectionpool.py::TestConnectionPool::test_custom_http_response_class PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception0] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception1] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception2] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception3] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception4] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception5] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception6] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception7] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception8] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception9] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception10] PASSED [ 6%] test/test_exceptions.py::TestPickle::test_exceptions[exception11] PASSED [ 6%] test/test_exceptions.py::TestFormat::test_header_parsing_errors PASSED [ 7%] test/test_fields.py::TestRequestField::test_guess_content_type[image.jpg-content_types0] PASSED [ 7%] test/test_fields.py::TestRequestField::test_guess_content_type[notsure-content_types1] PASSED [ 7%] test/test_fields.py::TestRequestField::test_guess_content_type[None-content_types2] PASSED [ 7%] test/test_fields.py::TestRequestField::test_create PASSED [ 7%] test/test_fields.py::TestRequestField::test_make_multipart PASSED [ 7%] test/test_fields.py::TestRequestField::test_make_multipart_empty_filename PASSED [ 7%] test/test_fields.py::TestRequestField::test_render_parts PASSED [ 7%] test/test_fields.py::TestRequestField::test_render_part_rfc2231_unicode PASSED [ 7%] test/test_fields.py::TestRequestField::test_render_part_rfc2231_ascii PASSED [ 7%] test/test_fields.py::TestRequestField::test_render_part_html5_unicode PASSED [ 7%] test/test_fields.py::TestRequestField::test_render_part_html5_ascii PASSED [ 7%] test/test_fields.py::TestRequestField::test_render_part_html5_unicode_escape PASSED [ 7%] test/test_fields.py::TestRequestField::test_render_part_html5_unicode_with_control_character PASSED [ 7%] test/test_fields.py::TestRequestField::test_from_tuples_rfc2231 PASSED [ 7%] test/test_fields.py::TestRequestField::test_from_tuples_html5 PASSED [ 7%] test/test_filepost.py::TestIterfields::test_dict PASSED [ 7%] test/test_filepost.py::TestIterfields::test_tuple_list PASSED [ 7%] test/test_filepost.py::TestMultipartEncoding::test_input_datastructures[fields0] PASSED [ 7%] test/test_filepost.py::TestMultipartEncoding::test_input_datastructures[fields1] PASSED [ 8%] test/test_filepost.py::TestMultipartEncoding::test_field_encoding[fields0] PASSED [ 8%] test/test_filepost.py::TestMultipartEncoding::test_field_encoding[fields1] PASSED [ 8%] test/test_filepost.py::TestMultipartEncoding::test_field_encoding[fields2] PASSED [ 8%] test/test_filepost.py::TestMultipartEncoding::test_filename PASSED [ 8%] test/test_filepost.py::TestMultipartEncoding::test_textplain PASSED [ 8%] test/test_filepost.py::TestMultipartEncoding::test_explicit PASSED [ 8%] test/test_filepost.py::TestMultipartEncoding::test_request_fields PASSED [ 8%] test/test_no_ssl.py::TestImportWithoutSSL::test_import_urllib3 PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_same_url PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_many_urls PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_manager_clear PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_nohost[http://@] PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_nohost[None] PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_contextmanager PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_http_pool_key_fields PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_https_pool_key_fields PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_default_pool_key_funcs_copy PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_pools_keyed_with_from_host PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_https_connection_from_url_case_insensitive PASSED [ 8%] test/test_poolmanager.py::TestPoolManager::test_https_connection_from_host_case_insensitive PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_https_connection_from_context_case_insensitive PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_http_connection_from_url_case_insensitive PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_http_connection_from_host_case_insensitive PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_assert_hostname_and_fingerprint_flag PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_http_connection_from_context_case_insensitive PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_custom_pool_key PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_override_pool_kwargs_url PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_override_pool_kwargs_host PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_pool_kwargs_socket_options PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_merge_pool_kwargs PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_merge_pool_kwargs_none PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_merge_pool_kwargs_remove_key PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_merge_pool_kwargs_invalid_key PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_pool_manager_no_url_absolute_form PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_e2e_connect_to_ipv6_scoped[[a::b%zone]] PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_e2e_connect_to_ipv6_scoped[[a::b%25zone]] PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_e2e_connect_to_ipv6_scoped[http://[a::b%zone]] PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_e2e_connect_to_ipv6_scoped[http://[a::b%25zone]] PASSED [ 9%] test/test_poolmanager.py::TestPoolManager::test_thread_safty PASSED [ 9%] test/test_proxymanager.py::TestProxyManager::test_proxy_headers[http] PASSED [ 10%] test/test_proxymanager.py::TestProxyManager::test_proxy_headers[https] PASSED [ 10%] test/test_proxymanager.py::TestProxyManager::test_default_port PASSED [ 10%] test/test_proxymanager.py::TestProxyManager::test_invalid_scheme PASSED [ 10%] test/test_proxymanager.py::TestProxyManager::test_proxy_tunnel PASSED [ 10%] test/test_proxymanager.py::TestProxyManager::test_proxy_connect_retry PASSED [ 10%] test/test_queue_monkeypatch.py::TestMonkeypatchResistance::test_queue_monkeypatching PASSED [ 10%] test/test_request.py::TestRequestImport::test_request_import_error PASSED [ 10%] test/test_request.py::TestRequestImport::test_request_module_properties PASSED [ 10%] test/test_response.py::TestLegacyResponse::test_getheaders PASSED [ 10%] test/test_response.py::TestLegacyResponse::test_getheader PASSED [ 10%] test/test_response.py::TestResponse::test_cache_content PASSED [ 10%] test/test_response.py::TestResponse::test_default PASSED [ 10%] test/test_response.py::TestResponse::test_none PASSED [ 10%] test/test_response.py::TestResponse::test_preload PASSED [ 10%] test/test_response.py::TestResponse::test_no_preload PASSED [ 10%] test/test_response.py::TestResponse::test_decode_bad_data PASSED [ 10%] test/test_response.py::TestResponse::test_reference_read PASSED [ 10%] test/test_response.py::TestResponse::test_decode_deflate PASSED [ 10%] test/test_response.py::TestResponse::test_decode_deflate_case_insensitve PASSED [ 11%] test/test_response.py::TestResponse::test_chunked_decoding_deflate PASSED [ 11%] test/test_response.py::TestResponse::test_chunked_decoding_deflate2 PASSED [ 11%] test/test_response.py::TestResponse::test_chunked_decoding_gzip PASSED [ 11%] test/test_response.py::TestResponse::test_decode_gzip_multi_member PASSED [ 11%] test/test_response.py::TestResponse::test_decode_gzip_error PASSED [ 11%] test/test_response.py::TestResponse::test_decode_gzip_swallow_garbage PASSED [ 11%] test/test_response.py::TestResponse::test_chunked_decoding_gzip_swallow_garbage PASSED [ 11%] test/test_response.py::TestResponse::test_decode_brotli PASSED [ 11%] test/test_response.py::TestResponse::test_chunked_decoding_brotli PASSED [ 11%] test/test_response.py::TestResponse::test_decode_brotli_error PASSED [ 11%] test/test_response.py::TestResponse::test_multi_decoding_deflate_deflate PASSED [ 11%] test/test_response.py::TestResponse::test_multi_decoding_deflate_gzip PASSED [ 11%] test/test_response.py::TestResponse::test_multi_decoding_gzip_gzip PASSED [ 11%] test/test_response.py::TestResponse::test_body_blob PASSED [ 11%] test/test_response.py::TestResponse::test_io PASSED [ 11%] test/test_response.py::TestResponse::test_io_closed_consistently PASSED [ 11%] test/test_response.py::TestResponse::test_io_bufferedreader PASSED [ 11%] test/test_response.py::TestResponse::test_io_not_autoclose_bufferedreader PASSED [ 11%] test/test_response.py::TestResponse::test_io_textiowrapper PASSED [ 11%] test/test_response.py::TestResponse::test_io_not_autoclose_textiowrapper PASSED [ 12%] test/test_response.py::TestResponse::test_streaming PASSED [ 12%] test/test_response.py::TestResponse::test_streaming_tell PASSED [ 12%] test/test_response.py::TestResponse::test_gzipped_streaming PASSED [ 12%] test/test_response.py::TestResponse::test_gzipped_streaming_tell PASSED [ 12%] test/test_response.py::TestResponse::test_deflate_streaming_tell_intermediate_point PASSED [ 12%] test/test_response.py::TestResponse::test_deflate_streaming PASSED [ 12%] test/test_response.py::TestResponse::test_deflate2_streaming PASSED [ 12%] test/test_response.py::TestResponse::test_empty_stream PASSED [ 12%] test/test_response.py::TestResponse::test_length_no_header PASSED [ 12%] test/test_response.py::TestResponse::test_length_w_valid_header PASSED [ 12%] test/test_response.py::TestResponse::test_length_w_bad_header PASSED [ 12%] test/test_response.py::TestResponse::test_length_when_chunked PASSED [ 12%] test/test_response.py::TestResponse::test_length_with_multiple_content_lengths PASSED [ 12%] test/test_response.py::TestResponse::test_length_after_read PASSED [ 12%] test/test_response.py::TestResponse::test_mock_httpresponse_stream PASSED [ 12%] test/test_response.py::TestResponse::test_mock_transfer_encoding_chunked PASSED [ 12%] test/test_response.py::TestResponse::test_mock_gzipped_transfer_encoding_chunked_decoded PASSED [ 12%] test/test_response.py::TestResponse::test_mock_transfer_encoding_chunked_custom_read PASSED [ 12%] test/test_response.py::TestResponse::test_mock_transfer_encoding_chunked_unlmtd_read PASSED [ 13%] test/test_response.py::TestResponse::test_read_not_chunked_response_as_chunks PASSED [ 13%] test/test_response.py::TestResponse::test_buggy_incomplete_read PASSED [ 13%] test/test_response.py::TestResponse::test_incomplete_chunk PASSED [ 13%] test/test_response.py::TestResponse::test_invalid_chunk_length PASSED [ 13%] test/test_response.py::TestResponse::test_chunked_response_without_crlf_on_end PASSED [ 13%] test/test_response.py::TestResponse::test_chunked_response_with_extensions PASSED [ 13%] test/test_response.py::TestResponse::test_chunked_head_response PASSED [ 13%] test/test_response.py::TestResponse::test_get_case_insensitive_headers PASSED [ 13%] test/test_response.py::TestResponse::test_retries PASSED [ 13%] test/test_response.py::TestResponse::test_geturl PASSED [ 13%] test/test_response.py::TestResponse::test_geturl_retries PASSED [ 13%] test/test_response.py::TestResponse::test__iter__[-expected_stream0] PASSED [ 13%] test/test_response.py::TestResponse::test__iter__[\n-expected_stream1] PASSED [ 13%] test/test_response.py::TestResponse::test__iter__[\n\n\n-expected_stream2] PASSED [ 13%] test/test_response.py::TestResponse::test__iter__[abc\ndef-expected_stream3] PASSED [ 13%] test/test_response.py::TestResponse::test__iter__[Hello\nworld\n\n\n!-expected_stream4] PASSED [ 13%] test/test_response.py::TestResponse::test__iter__decode_content PASSED [ 13%] test/test_response.py::TestResponse::test_non_timeout_ssl_error_on_read PASSED [ 13%] test/test_retry.py::TestRetry::test_string PASSED [ 13%] test/test_retry.py::TestRetry::test_retry_both_specified PASSED [ 14%] test/test_retry.py::TestRetry::test_retry_higher_total_loses PASSED [ 14%] test/test_retry.py::TestRetry::test_retry_higher_total_loses_vs_read PASSED [ 14%] test/test_retry.py::TestRetry::test_retry_total_none PASSED [ 14%] test/test_retry.py::TestRetry::test_retry_default PASSED [ 14%] test/test_retry.py::TestRetry::test_retry_other PASSED [ 14%] test/test_retry.py::TestRetry::test_retry_read_zero PASSED [ 14%] test/test_retry.py::TestRetry::test_status_counter PASSED [ 14%] test/test_retry.py::TestRetry::test_backoff PASSED [ 14%] test/test_retry.py::TestRetry::test_zero_backoff PASSED [ 14%] test/test_retry.py::TestRetry::test_backoff_reset_after_redirect PASSED [ 14%] test/test_retry.py::TestRetry::test_sleep PASSED [ 14%] test/test_retry.py::TestRetry::test_status_forcelist PASSED [ 14%] test/test_retry.py::TestRetry::test_allowed_methods_with_status_forcelist PASSED [ 14%] test/test_retry.py::TestRetry::test_exhausted PASSED [ 14%] test/test_retry.py::TestRetry::test_disabled[-1] PASSED [ 14%] test/test_retry.py::TestRetry::test_disabled[0] PASSED [ 14%] test/test_retry.py::TestRetry::test_error_message PASSED [ 14%] test/test_retry.py::TestRetry::test_history PASSED [ 14%] test/test_retry.py::TestRetry::test_retry_method_not_in_whitelist PASSED [ 14%] test/test_retry.py::TestRetry::test_retry_default_remove_headers_on_redirect PASSED [ 15%] test/test_retry.py::TestRetry::test_retry_set_remove_headers_on_redirect PASSED [ 15%] test/test_retry.py::TestRetry::test_parse_retry_after_invalid[-1] PASSED [ 15%] test/test_retry.py::TestRetry::test_parse_retry_after_invalid[+1] PASSED [ 15%] test/test_retry.py::TestRetry::test_parse_retry_after_invalid[1.0] PASSED [ 15%] test/test_retry.py::TestRetry::test_parse_retry_after_invalid[\xb2] PASSED [ 15%] test/test_retry.py::TestRetry::test_parse_retry_after[0-0] PASSED [ 15%] test/test_retry.py::TestRetry::test_parse_retry_after[1000-1000] PASSED [ 15%] test/test_retry.py::TestRetry::test_parse_retry_after[\t42 -42] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_propagated[True] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_propagated[False] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-3600-True-3600] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-3600-False-None] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 3 Jun 2019 12:00:00 UTC-True-3600] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 3 Jun 2019 12:00:00 UTC-False-None] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 3 Jun 2019 11:00:00 UTC-True-None] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 3 Jun 2019 11:00:00 UTC-False-None] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 03 Jun 2019 11:30:12 GMT-True-1812] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Monday, 03-Jun-19 11:30:12 GMT-True-1812] PASSED [ 15%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon Jun 3 11:30:12 2019-True-1812] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-3600-True-3600] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-3600-False-None] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 3 Jun 2019 12:00:00 UTC-True-3600] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 3 Jun 2019 12:00:00 UTC-False-None] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 3 Jun 2019 11:00:00 UTC-True-None] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 3 Jun 2019 11:00:00 UTC-False-None] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 03 Jun 2019 11:30:12 GMT-True-1812] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Monday, 03-Jun-19 11:30:12 GMT-True-1812] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon Jun 3 11:30:12 2019-True-1812] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-3600-True-3600] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-3600-False-None] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 3 Jun 2019 12:00:00 UTC-True-3600] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 3 Jun 2019 12:00:00 UTC-False-None] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 3 Jun 2019 11:00:00 UTC-True-None] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 3 Jun 2019 11:00:00 UTC-False-None] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 03 Jun 2019 11:30:12 GMT-True-1812] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-Monday, 03-Jun-19 11:30:12 GMT-True-1812] PASSED [ 16%] test/test_retry.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon Jun 3 11:30:12 2019-True-1812] PASSED [ 16%] test/test_retry_deprecated.py::TestRetry::test_string PASSED [ 16%] test/test_retry_deprecated.py::TestRetry::test_retry_both_specified PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_retry_higher_total_loses PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_retry_higher_total_loses_vs_read PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_retry_total_none PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_retry_default PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_retry_other PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_retry_read_zero PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_status_counter PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_backoff PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_zero_backoff PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_backoff_reset_after_redirect PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_sleep PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_status_forcelist PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_method_whitelist_with_status_forcelist PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_exhausted PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_disabled[-1] PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_disabled[0] PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_error_message PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_history PASSED [ 17%] test/test_retry_deprecated.py::TestRetry::test_retry_method_not_in_whitelist PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_retry_default_remove_headers_on_redirect PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_retry_set_remove_headers_on_redirect PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_parse_retry_after_invalid[-1] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_parse_retry_after_invalid[+1] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_parse_retry_after_invalid[1.0] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_parse_retry_after_invalid[\xb2] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_parse_retry_after[0-0] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_parse_retry_after[1000-1000] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_parse_retry_after[\t42 -42] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_propagated[True] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_propagated[False] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-3600-True-3600] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-3600-False-None] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 3 Jun 2019 12:00:00 UTC-True-3600] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 3 Jun 2019 12:00:00 UTC-False-None] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 3 Jun 2019 11:00:00 UTC-True-None] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 3 Jun 2019 11:00:00 UTC-False-None] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon, 03 Jun 2019 11:30:12 GMT-True-1812] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Monday, 03-Jun-19 11:30:12 GMT-True-1812] PASSED [ 18%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[UTC-Mon Jun 3 11:30:12 2019-True-1812] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-3600-True-3600] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-3600-False-None] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 3 Jun 2019 12:00:00 UTC-True-3600] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 3 Jun 2019 12:00:00 UTC-False-None] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 3 Jun 2019 11:00:00 UTC-True-None] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 3 Jun 2019 11:00:00 UTC-False-None] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon, 03 Jun 2019 11:30:12 GMT-True-1812] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Monday, 03-Jun-19 11:30:12 GMT-True-1812] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[Asia/Jerusalem-Mon Jun 3 11:30:12 2019-True-1812] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-3600-True-3600] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-3600-False-None] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 3 Jun 2019 12:00:00 UTC-True-3600] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 3 Jun 2019 12:00:00 UTC-False-None] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 3 Jun 2019 11:00:00 UTC-True-None] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 3 Jun 2019 11:00:00 UTC-False-None] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon, 03 Jun 2019 11:30:12 GMT-True-1812] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-Monday, 03-Jun-19 11:30:12 GMT-True-1812] PASSED [ 19%] test/test_retry_deprecated.py::TestRetry::test_respect_retry_after_header_sleep[None-Mon Jun 3 11:30:12 2019-True-1812] PASSED [ 19%] test/test_retry_deprecated.py::TestRetryDeprecations::test_cls_get_default_method_whitelist PASSED [ 19%] test/test_retry_deprecated.py::TestRetryDeprecations::test_cls_get_default_redirect_headers_blacklist PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_cls_get_default_backoff_max PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_cls_set_default_method_whitelist PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_cls_set_default_redirect_headers_blacklist PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_cls_set_default_backoff_max PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_retry_allowed_methods_and_method_whitelist_error[options0] PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_retry_allowed_methods_and_method_whitelist_error[options1] PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_retry_allowed_methods_and_method_whitelist_error[options2] PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_retry_allowed_methods_and_method_whitelist_error[options3] PASSED [ 20%] test/test_retry_deprecated.py::TestRetryDeprecations::test_retry_subclass_that_sets_method_whitelist PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[::1] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[::] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[FE80::8939:7684:D84b:a5A4%2510] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[127.0.0.10] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[8.8.8.8] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[127.0.0.11] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[FE80::8939:7684:D84b:a5A4%2511] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[FE80::8939:7684:D84b:a5A4%2512] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[FE80::8939:7684:D84b:a5A4%190] PASSED [ 20%] test/test_ssl.py::test_is_ipaddress_true[FE80::8939:7684:D84b:a5A4%191] PASSED [ 21%] test/test_ssl.py::test_is_ipaddress_false[www.python.org0] PASSED [ 21%] test/test_ssl.py::test_is_ipaddress_false[www.python.org1] PASSED [ 21%] test/test_ssl.py::test_is_ipaddress_false[v2.sg.media-imdb.com0] PASSED [ 21%] test/test_ssl.py::test_is_ipaddress_false[v2.sg.media-imdb.com1] PASSED [ 21%] test/test_ssl.py::test_context_sni_with_ip_address[True-127.0.0.1-False] PASSED [ 21%] test/test_ssl.py::test_context_sni_with_ip_address[False-www.python.org-False] PASSED [ 21%] test/test_ssl.py::test_context_sni_with_ip_address[False-0.0.0.0-False] PASSED [ 21%] test/test_ssl.py::test_context_sni_with_ip_address[True-www.google.com-True] PASSED [ 21%] test/test_ssl.py::test_context_sni_with_ip_address[True-None-False] PASSED [ 21%] test/test_ssl.py::test_context_sni_with_ip_address[False-None-False] PASSED [ 21%] test/test_ssl.py::test_sni_missing_warning_with_ip_addresses[True-www.google.com-False] PASSED [ 21%] test/test_ssl.py::test_sni_missing_warning_with_ip_addresses[True-127.0.0.1-False] PASSED [ 21%] test/test_ssl.py::test_sni_missing_warning_with_ip_addresses[False-127.0.0.1-False] PASSED [ 21%] test/test_ssl.py::test_sni_missing_warning_with_ip_addresses[False-www.google.com-True] PASSED [ 21%] test/test_ssl.py::test_sni_missing_warning_with_ip_addresses[True-None-False] PASSED [ 21%] test/test_ssl.py::test_sni_missing_warning_with_ip_addresses[False-None-False] PASSED [ 21%] test/test_ssl.py::test_create_urllib3_context_set_ciphers[None-ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:DHE+CHACHA20:ECDH+AESGCM:DH+AESGCM:ECDH+AES:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!eNULL:!MD5:!DSS] PASSED [ 21%] test/test_ssl.py::test_create_urllib3_context_set_ciphers[ECDH+AESGCM:ECDH+CHACHA20-ECDH+AESGCM:ECDH+CHACHA20] PASSED [ 21%] test/test_ssl.py::test_wrap_socket_given_context_no_load_default_certs PASSED [ 21%] test/test_ssl.py::test_wrap_socket_given_ca_certs_no_load_default_certs PASSED [ 22%] test/test_ssl.py::test_wrap_socket_default_loads_default_certs PASSED [ 22%] test/test_ssl.py::test_create_urllib3_context_pha[None-None] PASSED [ 22%] test/test_ssl.py::test_create_urllib3_context_pha[False-True] PASSED [ 22%] test/test_ssl.py::test_create_urllib3_context_pha[True-True] PASSED [ 22%] test/test_ssltransport.py::SingleTLSLayerTestCase::test_start_closed_socket PASSED [ 22%] test/test_ssltransport.py::SingleTLSLayerTestCase::test_close_after_handshake PASSED [ 22%] test/test_ssltransport.py::SingleTLSLayerTestCase::test_wrap_existing_socket PASSED [ 22%] test/test_ssltransport.py::SingleTLSLayerTestCase::test_unbuffered_text_makefile PASSED [ 22%] test/test_ssltransport.py::SingleTLSLayerTestCase::test_unwrap_existing_socket PASSED [ 22%] test/test_ssltransport.py::SingleTLSLayerTestCase::test_socket_object_attributes PASSED [ 22%] test/test_ssltransport.py::TlsInTlsTestCase::test_tls_in_tls_tunnel PASSED [ 22%] test/test_ssltransport.py::TlsInTlsTestCase::test_wrong_sni_hint PASSED [ 22%] test/test_ssltransport.py::TlsInTlsTestCase::test_tls_in_tls_makefile_raw_rw_binary[None] PASSED [ 22%] test/test_ssltransport.py::TlsInTlsTestCase::test_tls_in_tls_makefile_raw_rw_binary[0] PASSED [ 22%] test/test_ssltransport.py::TlsInTlsTestCase::test_tls_in_tls_makefile_rw_text PASSED [ 22%] test/test_ssltransport.py::TlsInTlsTestCase::test_tls_in_tls_recv_into_sendall PASSED [ 22%] test/test_ssltransport.py::TlsInTlsTestCase::test_tls_in_tls_recv_into_unbuffered PASSED [ 22%] test/test_ssltransport.py::TestSSLTransportWithMock::test_constructor_params PASSED [ 22%] test/test_util.py::TestUtil::test_get_host[http://google.com/mail-expected_host0] PASSED [ 22%] test/test_util.py::TestUtil::test_get_host[http://google.com/mail/-expected_host1] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[google.com/mail-expected_host2] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://google.com/-expected_host3] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://google.com-expected_host4] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://www.google.com-expected_host5] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://mail.google.com-expected_host6] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://google.com:8000/mail/-expected_host7] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://google.com:8000-expected_host8] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[https://google.com-expected_host9] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[https://google.com:8000-expected_host10] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://user:password@127.0.0.1:1234-expected_host11] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://google.com/foo=http://bar:42/baz-expected_host12] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://google.com?foo=http://bar:42/baz-expected_host13] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://google.com#foo=http://bar:42/baz-expected_host14] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[173.194.35.7-expected_host15] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://173.194.35.7-expected_host16] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://173.194.35.7/test-expected_host17] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://173.194.35.7:80-expected_host18] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[http://173.194.35.7:80/test-expected_host19] PASSED [ 23%] test/test_util.py::TestUtil::test_get_host[[2a00:1450:4001:c01::67]-expected_host20] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[2a00:1450:4001:c01::67]-expected_host21] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[2a00:1450:4001:c01::67]/test-expected_host22] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[2a00:1450:4001:c01::67]:80-expected_host23] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[2a00:1450:4001:c01::67]:80/test-expected_host24] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[fedc:ba98:7654:3210:fedc:ba98:7654:3210]:8000/index.html-expected_host25] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[1080:0:0:0:8:800:200c:417a]/index.html-expected_host26] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[3ffe:2a00:100:7031::1]-expected_host27] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[1080::8:800:200c:417a]/foo-expected_host28] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[::192.9.5.5]/ipng-expected_host29] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[::ffff:129.144.52.38]:42/index.html-expected_host30] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[2010:836b:4179::836b:4179]-expected_host31] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[a::b%25zone]-expected_host32] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[http://[a::b%zone]-expected_host33] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[HTTP://GOOGLE.COM/mail/-expected_host34] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[GOogle.COM/mail-expected_host35] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[HTTP://GoOgLe.CoM:8000/mail/-expected_host36] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[HTTP://user:password@EXAMPLE.COM:1234-expected_host37] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[173.194.35.7-expected_host38] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[HTTP://173.194.35.7-expected_host39] PASSED [ 24%] test/test_util.py::TestUtil::test_get_host[HTTP://[2a00:1450:4001:c01::67]:80/test-expected_host40] PASSED [ 25%] test/test_util.py::TestUtil::test_get_host[HTTP://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:8000/index.html-expected_host41] PASSED [ 25%] test/test_util.py::TestUtil::test_get_host[HTTPS://[1080:0:0:0:8:800:200c:417A]/index.html-expected_host42] PASSED [ 25%] test/test_util.py::TestUtil::test_get_host[abOut://eXamPlE.com?info=1-expected_host43] PASSED [ 25%] test/test_util.py::TestUtil::test_get_host[http+UNIX://%2fvar%2frun%2fSOCKET/path-expected_host44] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_host[http://google.com:foo] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_host[http://::1/] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_host[http://::1:80/] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_host[http://google.com:-80] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_host[http://google.com:\xb2\xb2] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_url[http://\ud7ff.com] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_url[http://\u2764\ufe0f] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_url[http://\ud800.com] PASSED [ 25%] test/test_util.py::TestUtil::test_invalid_url[http://\udc00.com] PASSED [ 25%] test/test_util.py::TestUtil::test_parse_url_normalization[HTTP://GOOGLE.COM/MAIL/-http://google.com/MAIL/] PASSED [ 25%] test/test_util.py::TestUtil::test_parse_url_normalization[http://user@domain.com:password@example.com/~tilde@?@-http://user%40domain.com:password@example.com/~tilde@?@] PASSED [ 25%] test/test_util.py::TestUtil::test_parse_url_normalization[HTTP://JeremyCline:Hunter2@Example.com:8080/-http://JeremyCline:Hunter2@example.com:8080/] PASSED [ 25%] test/test_util.py::TestUtil::test_parse_url_normalization[HTTPS://Example.Com/?Key=Value-https://example.com/?Key=Value] PASSED [ 25%] test/test_util.py::TestUtil::test_parse_url_normalization[Https://Example.Com/#Fragment-https://example.com/#Fragment] PASSED [ 25%] test/test_util.py::TestUtil::test_parse_url_normalization[[::1%zone]-[::1%zone]] PASSED [ 26%] test/test_util.py::TestUtil::test_parse_url_normalization[[::1%25zone]-[::1%zone]] PASSED [ 26%] test/test_util.py::TestUtil::test_parse_url_normalization[[::1%25]-[::1%25]] PASSED [ 26%] test/test_util.py::TestUtil::test_parse_url_normalization[[::Ff%etH0%Ff]/%ab%Af-[::ff%etH0%FF]/%AB%AF] PASSED [ 26%] test/test_util.py::TestUtil::test_parse_url_normalization[http://user:pass@[AaAa::Ff%25etH0%Ff]/%ab%Af-http://user:pass@[aaaa::ff%etH0%FF]/%AB%AF] PASSED [ 26%] test/test_util.py::TestUtil::test_parse_url_normalization[http://google.com/p[]?parameter[]="hello"#fragment#-http://google.com/p%5B%5D?parameter%5B%5D=%22hello%22#fragment%23] PASSED [ 26%] test/test_util.py::TestUtil::test_parse_url_normalization[http://google.com/p%5B%5d?parameter%5b%5D=%22hello%22#fragment%23-http://google.com/p%5B%5D?parameter%5B%5D=%22hello%22#fragment%23] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x00] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x01] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x02] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x03] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x04] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x05] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x06] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x07] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x08] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\t] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\n] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x0b] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x0c] PASSED [ 26%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\r] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x0e] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x0f] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x10] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x11] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x12] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x13] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x14] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x15] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x16] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x17] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x18] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x19] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x1a] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x1b] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x1c] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x1d] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x1e] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x1f] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[ ] PASSED [ 27%] test/test_util.py::TestUtil::test_control_characters_are_percent_encoded[\x7f] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com/mail-expected_url0] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com/mail/-expected_url1] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com/mail-expected_url2] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[google.com/mail-expected_url3] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com/-expected_url4] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com-expected_url5] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com?foo-expected_url6] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[-expected_url7] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[/-expected_url8] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[#?/!google.com/?foo-expected_url9] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[/foo-expected_url10] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[/foo?bar=baz-expected_url11] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[/foo?bar=baz#banana?apple/orange-expected_url12] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[/redirect?target=http://localhost:61020/-expected_url13] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com/-expected_url14] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com:80/-expected_url15] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://google.com:80-expected_url16] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://foo:bar@localhost/-expected_url17] PASSED [ 28%] test/test_util.py::TestUtil::test_parse_url[http://foo@localhost/-expected_url18] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://foo:bar@localhost/-expected_url19] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://foo:bar@localhost/-expected_url20] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://foo:bar@localhost/-expected_url21] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[?-expected_url22] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[#-expected_url23] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[/abc/../def-expected_url24] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://google.com:-expected_url25] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://google.com:/-expected_url26] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://K\xf6nigsg\xe4\xdfchen.de/stra\xdfe-expected_url27] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://user@email.com:password@example.com/-expected_url28] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://user":quoted@example.com/-expected_url29] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://google.com/\ud800-expected_url30] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://google.com?q=\udc00-expected_url31] PASSED [ 29%] test/test_util.py::TestUtil::test_parse_url[http://google.com#\udc00-expected_url32] PASSED [ 29%] test/test_util.py::TestUtil::test_unparse_url[http://google.com/mail-expected_url0] PASSED [ 29%] test/test_util.py::TestUtil::test_unparse_url[http://google.com/mail/-expected_url1] PASSED [ 29%] test/test_util.py::TestUtil::test_unparse_url[http://google.com/mail-expected_url2] PASSED [ 29%] test/test_util.py::TestUtil::test_unparse_url[google.com/mail-expected_url3] PASSED [ 29%] test/test_util.py::TestUtil::test_unparse_url[http://google.com/-expected_url4] PASSED [ 29%] test/test_util.py::TestUtil::test_unparse_url[http://google.com-expected_url5] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://google.com?foo-expected_url6] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[-expected_url7] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[/-expected_url8] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[#?/!google.com/?foo-expected_url9] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[/foo-expected_url10] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[/foo?bar=baz-expected_url11] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[/foo?bar=baz#banana?apple/orange-expected_url12] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[/redirect?target=http://localhost:61020/-expected_url13] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://google.com/-expected_url14] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://google.com:80/-expected_url15] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://google.com:80-expected_url16] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://foo:bar@localhost/-expected_url17] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://foo@localhost/-expected_url18] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://foo:bar@localhost/-expected_url19] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://foo:bar@localhost/-expected_url20] PASSED [ 30%] test/test_util.py::TestUtil::test_unparse_url[http://foo:bar@localhost/-expected_url21] PASSED [ 30%] test/test_util.py::TestUtil::test_parse_and_normalize_url_paths[/abc/../def-expected_url0] PASSED [ 30%] test/test_util.py::TestUtil::test_parse_and_normalize_url_paths[/..-expected_url1] PASSED [ 30%] test/test_util.py::TestUtil::test_parse_and_normalize_url_paths[/./abc/./def/-expected_url2] PASSED [ 31%] test/test_util.py::TestUtil::test_parse_and_normalize_url_paths[/.-expected_url3] PASSED [ 31%] test/test_util.py::TestUtil::test_parse_and_normalize_url_paths[/./-expected_url4] PASSED [ 31%] test/test_util.py::TestUtil::test_parse_and_normalize_url_paths[/abc/./.././d/././e/.././f/./../../ghi-expected_url5] PASSED [ 31%] test/test_util.py::TestUtil::test_parse_url_invalid_IPv6 PASSED [ 31%] test/test_util.py::TestUtil::test_parse_url_negative_port PASSED [ 31%] test/test_util.py::TestUtil::test_parse_url_remove_leading_zeros PASSED [ 31%] test/test_util.py::TestUtil::test_parse_url_only_zeros PASSED [ 31%] test/test_util.py::TestUtil::test_Url_str PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[http://google.com/mail-/mail] PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[http://google.com/mail/-/mail/] PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[http://google.com/-/] PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[http://google.com-/] PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[-/] PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[/-/] PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[?-/?] PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[#-/] PASSED [ 31%] test/test_util.py::TestUtil::test_request_uri[/foo?bar=baz-/foo?bar=baz] PASSED [ 31%] test/test_util.py::TestUtil::test_netloc[http://google.com/mail-google.com] PASSED [ 31%] test/test_util.py::TestUtil::test_netloc[http://google.com:80/mail-google.com:80] PASSED [ 31%] test/test_util.py::TestUtil::test_netloc[google.com/foobar-google.com] PASSED [ 32%] test/test_util.py::TestUtil::test_netloc[google.com:12345-google.com:12345] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[http://google.com#@evil.com/-expected_url0] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[http://127.0.0.1%0d%0aConnection%3a%20keep-alive-expected_url1] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[http://google.com/\uff2e\uff2e/abc-expected_url2] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[javascript:a='@google.com:12345/';alert(0)-expected_url3] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[//google.com/a/b/c-expected_url4] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[http://\u30d2:\u30ad@\u30d2.abc.\u30cb/\u30d2?\u30ad#\u30ef-expected_url5] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[10.251.0.83:7777?a=1 HTTP/1.1\r\nX-injected: header-expected_url6] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[http://127.0.0.1:6379?\r\nSET test failure12\r\n:8080/test/?test=a-expected_url7] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[https://user:pass@xdavidhu.me\\test.corp.google.com:8080/path/to/something?param=value#hash-expected_url8] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[https://@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[-False] PASSED [ 32%] test/test_util.py::TestUtil::test_url_vulnerabilities[https://user:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@example.com-expected_url10] PASSED [ 32%] test/test_util.py::TestUtil::test_parse_url_bytes_to_str_python_2 SKIPPED [ 32%] test/test_util.py::TestUtil::test_parse_url_unicode_python_2 SKIPPED [ 32%] test/test_util.py::TestUtil::test_parse_url_bytes_type_error_python_3 PASSED [ 32%] test/test_util.py::TestUtil::test_make_headers[kwargs0-expected0] PASSED [ 32%] test/test_util.py::TestUtil::test_make_headers[kwargs1-expected1] SKIPPED [ 32%] test/test_util.py::TestUtil::test_make_headers[kwargs2-expected2] PASSED [ 32%] test/test_util.py::TestUtil::test_make_headers[kwargs3-expected3] PASSED [ 32%] test/test_util.py::TestUtil::test_make_headers[kwargs4-expected4] PASSED [ 33%] test/test_util.py::TestUtil::test_make_headers[kwargs5-expected5] SKIPPED [ 33%] test/test_util.py::TestUtil::test_make_headers[kwargs6-expected6] PASSED [ 33%] test/test_util.py::TestUtil::test_make_headers[kwargs7-expected7] PASSED [ 33%] test/test_util.py::TestUtil::test_make_headers[kwargs8-expected8] PASSED [ 33%] test/test_util.py::TestUtil::test_make_headers[kwargs9-expected9] PASSED [ 33%] test/test_util.py::TestUtil::test_make_headers[kwargs10-expected10] PASSED [ 33%] test/test_util.py::TestUtil::test_rewind_body PASSED [ 33%] test/test_util.py::TestUtil::test_rewind_body_failed_tell PASSED [ 33%] test/test_util.py::TestUtil::test_rewind_body_bad_position PASSED [ 33%] test/test_util.py::TestUtil::test_rewind_body_failed_seek PASSED [ 33%] test/test_util.py::TestUtil::test_split_first[input0-expected0] PASSED [ 33%] test/test_util.py::TestUtil::test_split_first[input1-expected1] PASSED [ 33%] test/test_util.py::TestUtil::test_split_first[input2-expected2] PASSED [ 33%] test/test_util.py::TestUtil::test_split_first[input3-expected3] PASSED [ 33%] test/test_util.py::TestUtil::test_split_first[input4-expected4] PASSED [ 33%] test/test_util.py::TestUtil::test_split_first[input5-expected5] PASSED [ 33%] test/test_util.py::TestUtil::test_add_stderr_logger PASSED [ 33%] test/test_util.py::TestUtil::test_disable_warnings PASSED [ 33%] test/test_util.py::TestUtil::test_invalid_timeouts[kwargs0-less than] PASSED [ 34%] test/test_util.py::TestUtil::test_invalid_timeouts[kwargs1-less than] PASSED [ 34%] test/test_util.py::TestUtil::test_invalid_timeouts[kwargs2-less than] PASSED [ 34%] test/test_util.py::TestUtil::test_invalid_timeouts[kwargs3-cannot be a boolean] PASSED [ 34%] test/test_util.py::TestUtil::test_invalid_timeouts[kwargs4-cannot be a boolean] PASSED [ 34%] test/test_util.py::TestUtil::test_invalid_timeouts[kwargs5-less than or equal] PASSED [ 34%] test/test_util.py::TestUtil::test_invalid_timeouts[kwargs6-int, float or None] PASSED [ 34%] test/test_util.py::TestUtil::test_timeout PASSED [ 34%] test/test_util.py::TestUtil::test_timeout_str PASSED [ 34%] test/test_util.py::TestUtil::test_timeout_elapsed PASSED [ 34%] test/test_util.py::TestUtil::test_is_fp_closed_object_supports_closed PASSED [ 34%] test/test_util.py::TestUtil::test_is_fp_closed_object_has_none_fp PASSED [ 34%] test/test_util.py::TestUtil::test_is_fp_closed_object_has_fp PASSED [ 34%] test/test_util.py::TestUtil::test_is_fp_closed_object_has_neither_fp_nor_closed PASSED [ 34%] test/test_util.py::TestUtil::test_const_compare_digest_fallback PASSED [ 34%] test/test_util.py::TestUtil::test_has_ipv6_disabled_on_compile PASSED [ 34%] test/test_util.py::TestUtil::test_has_ipv6_enabled_but_fails PASSED [ 34%] test/test_util.py::TestUtil::test_has_ipv6_enabled_and_working PASSED [ 34%] test/test_util.py::TestUtil::test_has_ipv6_disabled_on_appengine PASSED [ 34%] test/test_util.py::TestUtil::test_ip_family_ipv6_enabled PASSED [ 34%] test/test_util.py::TestUtil::test_ip_family_ipv6_disabled PASSED [ 35%] test/test_util.py::TestUtil::test_assert_header_parsing_throws_typeerror_with_non_headers[foo] PASSED [ 35%] test/test_util.py::TestUtil::test_assert_header_parsing_throws_typeerror_with_non_headers[None] PASSED [ 35%] test/test_util.py::TestUtil::test_assert_header_parsing_throws_typeerror_with_non_headers[object] PASSED [ 35%] test/test_util.py::TestUtil::test_connection_requires_http_tunnel_no_proxy PASSED [ 35%] test/test_util.py::TestUtil::test_connection_requires_http_tunnel_http_proxy PASSED [ 35%] test/test_util.py::TestUtil::test_connection_requires_http_tunnel_https_proxy PASSED [ 35%] test/test_util.py::TestUtil::test_create_proxy_ssl_context PASSED [ 35%] test/test_util.py::TestUtil::test_assert_header_parsing_no_error_on_multipart PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_invalid_idna_labels[.localhost] PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_invalid_idna_labels[...] PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_invalid_idna_labels[tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt] PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_valid_idna_labels[a.example.com] PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_valid_idna_labels[localhost.] PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_valid_idna_labels[[dead::beef]] PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_valid_idna_labels[[dead::beef%en5]] PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_valid_idna_labels[[dead::beef%en5.]] PASSED [ 35%] test/test_util.py::TestUtil::test_create_connection_with_scoped_ipv6 PASSED [ 35%] test/test_util.py::TestUtilSSL::test_resolve_cert_reqs[None-2] PASSED [ 35%] test/test_util.py::TestUtilSSL::test_resolve_cert_reqs[0-0] PASSED [ 36%] test/test_util.py::TestUtilSSL::test_resolve_cert_reqs[2-2] PASSED [ 36%] test/test_util.py::TestUtilSSL::test_resolve_cert_reqs[REQUIRED-2] PASSED [ 36%] test/test_util.py::TestUtilSSL::test_resolve_cert_reqs[CERT_REQUIRED-2] PASSED [ 36%] test/test_util.py::TestUtilSSL::test_resolve_ssl_version[3-3] PASSED [ 36%] test/test_util.py::TestUtilSSL::test_resolve_ssl_version[PROTOCOL_TLSv1-3] PASSED [ 36%] test/test_util.py::TestUtilSSL::test_resolve_ssl_version[TLSv1-3] PASSED [ 36%] test/test_util.py::TestUtilSSL::test_resolve_ssl_version[2-2] PASSED [ 36%] test/test_util.py::TestUtilSSL::test_ssl_wrap_socket_loads_the_cert_chain PASSED [ 36%] test/test_util.py::TestUtilSSL::test_ssl_wrap_socket_creates_new_context PASSED [ 36%] test/test_util.py::TestUtilSSL::test_ssl_wrap_socket_loads_verify_locations PASSED [ 36%] test/test_util.py::TestUtilSSL::test_ssl_wrap_socket_loads_certificate_directories PASSED [ 36%] test/test_util.py::TestUtilSSL::test_ssl_wrap_socket_loads_certificate_data PASSED [ 36%] test/test_util.py::TestUtilSSL::test_ssl_wrap_socket_sni_hostname_use_or_warn PASSED [ 36%] test/test_util.py::TestUtilSSL::test_ssl_wrap_socket_sni_ip_address_no_warn PASSED [ 36%] test/test_util.py::TestUtilSSL::test_ssl_wrap_socket_sni_none_no_warn PASSED [ 36%] test/test_wait.py::test_wait_for_socket[wait_for_socket] PASSED [ 36%] test/test_wait.py::test_wait_for_socket[select_wait_for_socket] PASSED [ 36%] test/test_wait.py::test_wait_for_socket[poll_wait_for_socket] PASSED [ 36%] test/test_wait.py::test_wait_for_read_write PASSED [ 36%] test/test_wait.py::test_eintr[wait_for_socket] PASSED [ 37%] test/test_wait.py::test_eintr[select_wait_for_socket] PASSED [ 37%] test/test_wait.py::test_eintr[poll_wait_for_socket] PASSED [ 37%] test/test_wait.py::test_eintr_zero_timeout[wait_for_socket] PASSED [ 37%] test/test_wait.py::test_eintr_zero_timeout[select_wait_for_socket] PASSED [ 37%] test/test_wait.py::test_eintr_zero_timeout[poll_wait_for_socket] PASSED [ 37%] test/test_wait.py::test_eintr_infinite_timeout[wait_for_socket] PASSED [ 37%] test/test_wait.py::test_eintr_infinite_timeout[select_wait_for_socket] PASSED [ 37%] test/test_wait.py::test_eintr_infinite_timeout[poll_wait_for_socket] PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_cert_reqs[None-2] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_cert_reqs[0-0] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_cert_reqs[2-2] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_cert_reqs[REQUIRED-2] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_cert_reqs[CERT_REQUIRED-2] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_ssl_version[3-3] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_ssl_version[PROTOCOL_TLSv1-3] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_ssl_version[TLSv1-3] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_resolve_ssl_version[2-2] <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_ssl_wrap_socket_loads_the_cert_chain <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_ssl_wrap_socket_creates_new_context <- test/test_util.py PASSED [ 37%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_ssl_wrap_socket_loads_verify_locations <- test/test_util.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_ssl_wrap_socket_loads_certificate_directories <- test/test_util.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_ssl_wrap_socket_loads_certificate_data <- test/test_util.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_ssl_wrap_socket_sni_hostname_use_or_warn <- test/test_util.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_ssl_wrap_socket_sni_ip_address_no_warn <- test/test_util.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestUtilSSL::test_ssl_wrap_socket_sni_none_no_warn <- test/test_util.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_simple <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_dotted_fqdn <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_client_intermediate <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_client_no_intermediate <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_client_key_password <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_verified <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_verified_with_context <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_ca_dir_verified <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_invalid_common_name <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py PASSED [ 38%] test/contrib/test_pyopenssl.py::TestHTTPS::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_no_ssl <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_unverified_ssl <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_assert_hostname_false <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_assert_specific_hostname <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_server_hostname <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_https_timeout <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_tunnel <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_enhanced_timeout <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py PASSED [ 39%] test/contrib/test_pyopenssl.py::TestHTTPS::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS::test_alpn_default <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_IPV4SAN::test_can_validate_ip_san <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_IPv6Addr::test_strip_square_brackets_before_validating[::1] <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_IPv6Addr::test_strip_square_brackets_before_validating[[::1]] <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_IPV6SAN::test_can_validate_ipv6_san[::1] <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_IPV6SAN::test_can_validate_ipv6_san[[::1]] <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_NoSAN::test_warning_for_certs_without_a_san <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_NoSAN::test_common_name_without_san_with_different_common_name <- test/with_dummyserver/test_https.py PASSED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_simple <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_dotted_fqdn <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_client_intermediate <- test/with_dummyserver/test_https.py SKIPPED [ 40%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_client_no_intermediate <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_client_key_password <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_verified <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_verified_with_context <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_ca_dir_verified <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_invalid_common_name <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_no_ssl <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_unverified_ssl <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_assert_hostname_false <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_assert_specific_hostname <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_server_hostname <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py SKIPPED [ 41%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_https_timeout <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_tunnel <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_enhanced_timeout <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py SKIPPED [ 42%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_alpn_default <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_simple <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_dotted_fqdn <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_client_intermediate <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_client_no_intermediate <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_client_key_password <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_verified <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_verified_with_context <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_ca_dir_verified <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_invalid_common_name <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_no_ssl <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_unverified_ssl <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_assert_hostname_false <- test/with_dummyserver/test_https.py SKIPPED [ 43%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_assert_specific_hostname <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_server_hostname <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_https_timeout <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_tunnel <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_enhanced_timeout <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py SKIPPED [ 44%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py SKIPPED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py SKIPPED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py SKIPPED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_alpn_default <- test/with_dummyserver/test_https.py SKIPPED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_simple <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_dotted_fqdn <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_client_intermediate <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_client_no_intermediate <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_client_key_password <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_verified <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_verified_with_context <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_ca_dir_verified <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_invalid_common_name <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_no_ssl <- test/with_dummyserver/test_https.py PASSED [ 45%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_unverified_ssl <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_assert_hostname_false <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_assert_specific_hostname <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_server_hostname <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_https_timeout <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_tunnel <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_enhanced_timeout <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py PASSED [ 46%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_2::test_alpn_default <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_simple <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_dotted_fqdn <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_client_intermediate <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_client_no_intermediate <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_client_key_password <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_verified <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_verified_with_context <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_ca_dir_verified <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_invalid_common_name <- test/with_dummyserver/test_https.py PASSED [ 47%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_no_ssl <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_unverified_ssl <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_assert_hostname_false <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_assert_specific_hostname <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_server_hostname <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_https_timeout <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_tunnel <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_enhanced_timeout <- test/with_dummyserver/test_https.py PASSED [ 48%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_3::test_alpn_default <- test/with_dummyserver/test_https.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestClientCerts::test_load_keyfile_with_invalid_password <- test/with_dummyserver/test_socketlevel.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestSNI::test_hostname_in_first_request_packet <- test/with_dummyserver/test_socketlevel.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_recovery_when_server_closes_connection <- test/with_dummyserver/test_socketlevel.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_connection_refused <- test/with_dummyserver/test_socketlevel.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_connection_read_timeout <- test/with_dummyserver/test_socketlevel.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_read_timeout_dont_retry_method_not_in_allowlist <- test/with_dummyserver/test_socketlevel.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_https_connection_read_timeout <- test/with_dummyserver/test_socketlevel.py PASSED [ 49%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_timeout_errors_cause_retries <- test/with_dummyserver/test_socketlevel.py FAILED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_delayed_body_read_timeout <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_delayed_body_read_timeout_with_preload <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_incomplete_response <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_retry_weird_http_version <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_connection_cleanup_on_read_timeout <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_connection_cleanup_on_protocol_error_during_read <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_connection_closed_on_read_timeout_preload_false <- test/with_dummyserver/test_socketlevel.py FAILED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_closing_response_actually_closes_connection <- test/with_dummyserver/test_socketlevel.py FAILED [ 50%] test/contrib/test_pyopenssl.py::TestSocketClosing::test_release_conn_param_is_respected_after_timeout_retry <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSSL::test_ssl_load_default_certs_when_empty <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSSL::test_ssl_dont_load_default_certs_when_given <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestSSL::test_load_verify_locations_exception <- test/with_dummyserver/test_socketlevel.py PASSED [ 50%] test/contrib/test_pyopenssl.py::TestPyOpenSSLHelpers::test_dnsname_to_stdlib_simple PASSED [ 50%] test/contrib/test_pyopenssl.py::TestPyOpenSSLHelpers::test_dnsname_to_stdlib_leading_period PASSED [ 50%] test/contrib/test_pyopenssl.py::TestPyOpenSSLHelpers::test_dnsname_to_stdlib_leading_splat PASSED [ 50%] test/contrib/test_pyopenssl.py::TestPyOpenSSLHelpers::test_get_subj_alt_name PASSED [ 50%] test/contrib/test_pyopenssl_dependencies.py::TestPyOpenSSLInjection::test_inject_validate_fail_cryptography PASSED [ 50%] test/contrib/test_pyopenssl_dependencies.py::TestPyOpenSSLInjection::test_inject_validate_fail_pyopenssl PASSED [ 50%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_cert_reqs[None-2] <- test/test_util.py SKIPPED')) [ 50%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_cert_reqs[0-0] <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_cert_reqs[2-2] <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_cert_reqs[REQUIRED-2] <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_cert_reqs[CERT_REQUIRED-2] <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_ssl_version[3-3] <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_ssl_version[PROTOCOL_TLSv1-3] <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_ssl_version[TLSv1-3] <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_resolve_ssl_version[2-2] <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_ssl_wrap_socket_loads_the_cert_chain <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_ssl_wrap_socket_creates_new_context <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_ssl_wrap_socket_loads_verify_locations <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_ssl_wrap_socket_loads_certificate_directories <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_ssl_wrap_socket_loads_certificate_data <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_ssl_wrap_socket_sni_hostname_use_or_warn <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_ssl_wrap_socket_sni_ip_address_no_warn <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestUtilSSL::test_ssl_wrap_socket_sni_none_no_warn <- test/test_util.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestHTTPS::test_simple <- test/with_dummyserver/test_https.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestHTTPS::test_dotted_fqdn <- test/with_dummyserver/test_https.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestHTTPS::test_client_intermediate <- test/with_dummyserver/test_https.py SKIPPED')) [ 51%] test/contrib/test_securetransport.py::TestHTTPS::test_client_no_intermediate <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_client_key_password <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py SKIPPED [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_verified <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_verified_with_context <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_ca_dir_verified <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_invalid_common_name <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_no_ssl <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_unverified_ssl <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_assert_hostname_false <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_assert_specific_hostname <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_server_hostname <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py SKIPPED')) [ 52%] test/contrib/test_securetransport.py::TestHTTPS::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py SKIPPED [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_https_timeout <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_tunnel <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_enhanced_timeout <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py SKIPPED [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py SKIPPED [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py SKIPPED')) [ 53%] test/contrib/test_securetransport.py::TestHTTPS::test_alpn_default <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_simple <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_dotted_fqdn <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_client_intermediate <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_client_no_intermediate <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_client_key_password <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py SKIPPED [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_verified <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_verified_with_context <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_ca_dir_verified <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_invalid_common_name <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py SKIPPED [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_no_ssl <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_unverified_ssl <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_assert_hostname_false <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_assert_specific_hostname <- test/with_dummyserver/test_https.py SKIPPED')) [ 54%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_server_hostname <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py SKIPPED [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_https_timeout <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_tunnel <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_enhanced_timeout <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py SKIPPED')) [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py SKIPPED [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py SKIPPED [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py SKIPPED [ 55%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1::test_alpn_default <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_simple <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_dotted_fqdn <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_client_intermediate <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_client_no_intermediate <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_client_key_password <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py SKIPPED [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_verified <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_verified_with_context <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_ca_dir_verified <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_invalid_common_name <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py SKIPPED [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_no_ssl <- test/with_dummyserver/test_https.py SKIPPED')) [ 56%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_unverified_ssl <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_assert_hostname_false <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_assert_specific_hostname <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_server_hostname <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py SKIPPED [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_https_timeout <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_tunnel <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_enhanced_timeout <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py SKIPPED')) [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py SKIPPED [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py SKIPPED [ 57%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py SKIPPED [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py SKIPPED [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py SKIPPED [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_1::test_alpn_default <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_simple <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_dotted_fqdn <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_client_intermediate <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_client_no_intermediate <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_client_key_password <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_client_encrypted_key_requires_password <- test/with_dummyserver/test_https.py SKIPPED [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_verified <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_verified_with_context <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_context_combines_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_ca_dir_verified <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_invalid_common_name <- test/with_dummyserver/test_https.py SKIPPED')) [ 58%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_verified_with_bad_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_wrap_socket_failure_resource_leak <- test/with_dummyserver/test_https.py SKIPPED [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_verified_without_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_no_ssl <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_unverified_ssl <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_ssl_unverified_with_ca_certs <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_assert_hostname_false <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_assert_specific_hostname <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_server_hostname <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_md5 <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_sha1 <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_sha256 <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_assert_invalid_fingerprint <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_verify_none_and_bad_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_verify_none_and_good_fingerprint <- test/with_dummyserver/test_https.py SKIPPED [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_good_fingerprint_and_hostname_mismatch <- test/with_dummyserver/test_https.py SKIPPED [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_https_timeout <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_tunnel <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_enhanced_timeout <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_enhanced_ssl_connection <- test/with_dummyserver/test_https.py SKIPPED')) [ 59%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_ssl_correct_system_time <- test/with_dummyserver/test_https.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_ssl_wrong_system_time <- test/with_dummyserver/test_https.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_set_ssl_version_to_tls_version <- test/with_dummyserver/test_https.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_set_cert_default_cert_required <- test/with_dummyserver/test_https.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_tls_protocol_name_of_socket <- test/with_dummyserver/test_https.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_default_tls_version_deprecations <- test/with_dummyserver/test_https.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_no_tls_version_deprecation_with_ssl_version <- test/with_dummyserver/test_https.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_no_tls_version_deprecation_with_ssl_context <- test/with_dummyserver/test_https.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_sslkeylogfile <- test/with_dummyserver/test_https.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_sslkeylogfile_empty[None] <- test/with_dummyserver/test_https.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_sslkeylogfile_empty[] <- test/with_dummyserver/test_https.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestHTTPS_TLSv1_2::test_alpn_default <- test/with_dummyserver/test_https.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestClientCerts::test_client_certs_two_files <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestClientCerts::test_client_certs_one_file <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestClientCerts::test_missing_client_certs_raises_error <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestClientCerts::test_client_cert_with_string_password <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestClientCerts::test_client_cert_with_bytes_password <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestClientCerts::test_load_keyfile_with_invalid_password <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestSNI::test_hostname_in_first_request_packet <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 60%] test/contrib/test_securetransport.py::TestSocketClosing::test_recovery_when_server_closes_connection <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 60%] test/contrib/test_securetransport.py::TestSocketClosing::test_connection_refused <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_connection_read_timeout <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_read_timeout_dont_retry_method_not_in_allowlist <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_https_connection_read_timeout <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_timeout_errors_cause_retries <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_delayed_body_read_timeout <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_delayed_body_read_timeout_with_preload <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_incomplete_response <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_retry_weird_http_version <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_connection_cleanup_on_read_timeout <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_connection_cleanup_on_protocol_error_during_read <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_connection_closed_on_read_timeout_preload_false <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_closing_response_actually_closes_connection <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSocketClosing::test_release_conn_param_is_respected_after_timeout_retry <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSSL::test_ssl_failure_midway_through_conn <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 61%] test/contrib/test_securetransport.py::TestSSL::test_ssl_read_timeout <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 61%] test/contrib/test_securetransport.py::TestSSL::test_ssl_failed_fingerprint_verification <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSSL::test_retry_ssl_error <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 61%] test/contrib/test_securetransport.py::TestSSL::test_ssl_load_default_certs_when_empty <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 61%] test/contrib/test_securetransport.py::TestSSL::test_ssl_dont_load_default_certs_when_given <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 62%] test/contrib/test_securetransport.py::TestSSL::test_load_verify_locations_exception <- test/with_dummyserver/test_socketlevel.py SKIPPED')) [ 62%] test/contrib/test_securetransport.py::TestSSL::test_ssl_custom_validation_failure_terminates <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 62%] test/contrib/test_securetransport.py::TestSSL::test_requesting_large_resources_via_ssl[True-None] <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 62%] test/contrib/test_securetransport.py::TestSSL::test_requesting_large_resources_via_ssl[False-None] <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 62%] test/contrib/test_securetransport.py::TestSSL::test_requesting_large_resources_via_ssl[False-2147483648] <- test/with_dummyserver/test_socketlevel.py SKIPPED [ 62%] test/contrib/test_securetransport.py::test_no_crash_with_empty_trust_bundle SKIPPED')) [ 62%] test/contrib/test_securetransport.py::test_no_crash_with_invalid_trust_bundle SKIPPED')) [ 62%] test/contrib/test_socks.py::TestSOCKSProxyManager::test_invalid_socks_version_is_valueerror PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_basic_request PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_local_dns PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_correct_header_line PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_connection_timeouts PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_connection_failure PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_proxy_rejection PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_socks_with_password PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_socks_with_auth_in_url PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_socks_with_invalid_password PASSED [ 62%] test/contrib/test_socks.py::TestSocks5Proxy::test_source_address_works PASSED [ 62%] test/contrib/test_socks.py::TestSOCKS4Proxy::test_basic_request PASSED [ 62%] test/contrib/test_socks.py::TestSOCKS4Proxy::test_local_dns PASSED [ 63%] test/contrib/test_socks.py::TestSOCKS4Proxy::test_correct_header_line PASSED [ 63%] test/contrib/test_socks.py::TestSOCKS4Proxy::test_proxy_rejection PASSED [ 63%] test/contrib/test_socks.py::TestSOCKS4Proxy::test_socks4_with_username PASSED [ 63%] test/contrib/test_socks.py::TestSOCKS4Proxy::test_socks_with_invalid_username PASSED [ 63%] test/contrib/test_socks.py::TestSOCKSWithTLS::test_basic_request PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_chunks PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_bytestring_body PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_unicode_body PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_empty_body PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_empty_string_body PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_empty_iterable_body PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_removes_duplicate_host_header PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_provides_default_host_header PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_provides_default_user_agent_header PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_preserve_user_agent_header PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_remove_user_agent_header PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_provides_default_transfer_encoding_header PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_preserve_transfer_encoding_header PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_preserve_chunked_on_retry_after PASSED [ 63%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_preserve_chunked_on_redirect PASSED [ 64%] test/with_dummyserver/test_chunked_transfer.py::TestChunkedTransfer::test_preserve_chunked_on_broken_connection PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPoolTimeouts::test_timeout_float PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPoolTimeouts::test_conn_closed PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPoolTimeouts::test_timeout PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPoolTimeouts::test_connect_timeout PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPoolTimeouts::test_total_applies_connect PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPoolTimeouts::test_total_timeout PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPoolTimeouts::test_create_connection_timeout PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_get PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_post_url PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_urlopen_put PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_wrong_specific_method PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_upload PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_one_name_multiple_values PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_request_method_body PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_unicode_upload PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_nagle PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_options PASSED [ 64%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_disable_default_socket_options PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_defaults_are_applied PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_connection_error_retries PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_timeout_success PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_constructor[1-expect_settimeout_calls0] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_constructor[None-expect_settimeout_calls1] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_constructor[timeout2-expect_settimeout_calls2] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_constructor[timeout3-expect_settimeout_calls3] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_constructor[timeout4-expect_settimeout_calls4] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_parameter[1-expect_settimeout_calls0] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_parameter[None-expect_settimeout_calls1] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_parameter[timeout2-expect_settimeout_calls2] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_parameter[timeout3-expect_settimeout_calls3] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_socket_timeout_updated_on_reuse_parameter[timeout4-expect_settimeout_calls4] PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_tunnel PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_redirect PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_303_redirect_makes_request_lose_body PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_bad_connect PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_keepalive PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_keepalive_close PASSED [ 65%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_post_with_urlencode PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_post_with_multipart PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_post_with_multipart__iter__ PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_check_gzip PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_check_deflate PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_bad_decode PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_connection_count PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_connection_count_bigpool PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_partial_response PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_lazy_load_twice PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_for_double_release PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_release_conn_parameter PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_dns_error PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_invalid_method_not_allowed[ ] PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_invalid_method_not_allowed[\r] PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_invalid_method_not_allowed[\n] PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_invalid_method_not_allowed[\x00] PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_percent_encode_invalid_target_chars PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_source_address PASSED [ 66%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_source_address_error PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_stream_keepalive PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_read_chunked_short_circuit PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_read_chunked_on_closed_response PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_chunked_gzip PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_cleanup_on_connection_error PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_mixed_case_hostname PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_preserves_path_dot_segments PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_default_user_agent_header PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[True-None] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[True-headers1] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[True-headers2] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[True-headers3] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[True-headers4] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[True-headers5] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[False-None] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[False-headers1] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[False-headers2] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[False-headers3] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[False-headers4] PASSED [ 67%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_header_not_sent_twice[False-headers5] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_no_user_agent_header PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host0-Accept-Encoding0] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host0-accept-encoding0] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host0-Accept-Encoding1] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host0-accept-encoding1] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host0-None] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host0-Accept-Encoding0] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host0-accept-encoding0] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host0-Accept-Encoding1] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host0-accept-encoding1] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host0-None] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host1-Accept-Encoding0] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host1-accept-encoding0] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host1-Accept-Encoding1] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host1-accept-encoding1] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-Host1-None] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host1-Accept-Encoding0] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host1-accept-encoding0] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host1-Accept-Encoding1] PASSED [ 68%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host1-accept-encoding1] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-host1-None] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-None-Accept-Encoding0] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-None-accept-encoding0] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-None-Accept-Encoding1] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-None-accept-encoding1] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent0-None-None] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host0-Accept-Encoding0] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host0-accept-encoding0] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host0-Accept-Encoding1] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host0-accept-encoding1] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host0-None] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host0-Accept-Encoding0] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host0-accept-encoding0] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host0-Accept-Encoding1] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host0-accept-encoding1] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host0-None] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host1-Accept-Encoding0] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host1-accept-encoding0] PASSED [ 69%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host1-Accept-Encoding1] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host1-accept-encoding1] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-Host1-None] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host1-Accept-Encoding0] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host1-accept-encoding0] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host1-Accept-Encoding1] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host1-accept-encoding1] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-host1-None] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-None-Accept-Encoding0] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-None-accept-encoding0] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-None-Accept-Encoding1] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-None-accept-encoding1] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent0-None-None] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host0-Accept-Encoding0] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host0-accept-encoding0] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host0-Accept-Encoding1] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host0-accept-encoding1] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host0-None] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host0-Accept-Encoding0] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host0-accept-encoding0] PASSED [ 70%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host0-Accept-Encoding1] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host0-accept-encoding1] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host0-None] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host1-Accept-Encoding0] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host1-accept-encoding0] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host1-Accept-Encoding1] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host1-accept-encoding1] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-Host1-None] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host1-Accept-Encoding0] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host1-accept-encoding0] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host1-Accept-Encoding1] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host1-accept-encoding1] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-host1-None] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-None-Accept-Encoding0] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-None-accept-encoding0] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-None-Accept-Encoding1] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-None-accept-encoding1] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-User-Agent1-None-None] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host0-Accept-Encoding0] PASSED [ 71%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host0-accept-encoding0] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host0-Accept-Encoding1] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host0-accept-encoding1] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host0-None] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host0-Accept-Encoding0] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host0-accept-encoding0] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host0-Accept-Encoding1] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host0-accept-encoding1] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host0-None] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host1-Accept-Encoding0] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host1-accept-encoding0] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host1-Accept-Encoding1] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host1-accept-encoding1] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-Host1-None] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host1-Accept-Encoding0] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host1-accept-encoding0] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host1-Accept-Encoding1] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host1-accept-encoding1] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-host1-None] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-None-Accept-Encoding0] PASSED [ 72%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-None-accept-encoding0] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-None-Accept-Encoding1] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-None-accept-encoding1] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-user-agent1-None-None] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host0-Accept-Encoding0] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host0-accept-encoding0] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host0-Accept-Encoding1] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host0-accept-encoding1] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host0-None] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host0-Accept-Encoding0] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host0-accept-encoding0] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host0-Accept-Encoding1] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host0-accept-encoding1] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host0-None] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host1-Accept-Encoding0] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host1-accept-encoding0] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host1-Accept-Encoding1] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host1-accept-encoding1] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-Host1-None] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host1-Accept-Encoding0] PASSED [ 73%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host1-accept-encoding0] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host1-Accept-Encoding1] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host1-accept-encoding1] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-host1-None] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-None-Accept-Encoding0] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-None-accept-encoding0] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-None-Accept-Encoding1] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-None-accept-encoding1] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[True-None-None-None] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host0-Accept-Encoding0] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host0-accept-encoding0] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host0-Accept-Encoding1] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host0-accept-encoding1] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host0-None] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host0-Accept-Encoding0] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host0-accept-encoding0] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host0-Accept-Encoding1] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host0-accept-encoding1] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host0-None] PASSED [ 74%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host1-Accept-Encoding0] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host1-accept-encoding0] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host1-Accept-Encoding1] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host1-accept-encoding1] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-Host1-None] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host1-Accept-Encoding0] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host1-accept-encoding0] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host1-Accept-Encoding1] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host1-accept-encoding1] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-host1-None] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-None-Accept-Encoding0] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-None-accept-encoding0] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-None-Accept-Encoding1] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-None-accept-encoding1] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent0-None-None] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host0-Accept-Encoding0] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host0-accept-encoding0] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host0-Accept-Encoding1] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host0-accept-encoding1] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host0-None] PASSED [ 75%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host0-Accept-Encoding0] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host0-accept-encoding0] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host0-Accept-Encoding1] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host0-accept-encoding1] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host0-None] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host1-Accept-Encoding0] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host1-accept-encoding0] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host1-Accept-Encoding1] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host1-accept-encoding1] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-Host1-None] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host1-Accept-Encoding0] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host1-accept-encoding0] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host1-Accept-Encoding1] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host1-accept-encoding1] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-host1-None] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-None-Accept-Encoding0] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-None-accept-encoding0] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-None-Accept-Encoding1] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-None-accept-encoding1] PASSED [ 76%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent0-None-None] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host0-Accept-Encoding0] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host0-accept-encoding0] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host0-Accept-Encoding1] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host0-accept-encoding1] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host0-None] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host0-Accept-Encoding0] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host0-accept-encoding0] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host0-Accept-Encoding1] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host0-accept-encoding1] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host0-None] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host1-Accept-Encoding0] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host1-accept-encoding0] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host1-Accept-Encoding1] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host1-accept-encoding1] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-Host1-None] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host1-Accept-Encoding0] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host1-accept-encoding0] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host1-Accept-Encoding1] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host1-accept-encoding1] PASSED [ 77%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-host1-None] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-None-Accept-Encoding0] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-None-accept-encoding0] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-None-Accept-Encoding1] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-None-accept-encoding1] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-User-Agent1-None-None] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host0-Accept-Encoding0] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host0-accept-encoding0] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host0-Accept-Encoding1] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host0-accept-encoding1] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host0-None] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host0-Accept-Encoding0] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host0-accept-encoding0] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host0-Accept-Encoding1] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host0-accept-encoding1] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host0-None] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host1-Accept-Encoding0] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host1-accept-encoding0] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host1-Accept-Encoding1] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host1-accept-encoding1] PASSED [ 78%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-Host1-None] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host1-Accept-Encoding0] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host1-accept-encoding0] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host1-Accept-Encoding1] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host1-accept-encoding1] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-host1-None] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-None-Accept-Encoding0] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-None-accept-encoding0] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-None-Accept-Encoding1] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-None-accept-encoding1] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-user-agent1-None-None] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host0-Accept-Encoding0] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host0-accept-encoding0] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host0-Accept-Encoding1] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host0-accept-encoding1] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host0-None] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host0-Accept-Encoding0] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host0-accept-encoding0] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host0-Accept-Encoding1] PASSED [ 79%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host0-accept-encoding1] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host0-None] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host1-Accept-Encoding0] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host1-accept-encoding0] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host1-Accept-Encoding1] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host1-accept-encoding1] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-Host1-None] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host1-Accept-Encoding0] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host1-accept-encoding0] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host1-Accept-Encoding1] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host1-accept-encoding1] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-host1-None] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-None-Accept-Encoding0] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-None-accept-encoding0] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-None-Accept-Encoding1] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-None-accept-encoding1] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header[False-None-None-None] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header_non_supported[True-Content-Length] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header_non_supported[True-content-length] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header_non_supported[False-Content-Length] PASSED [ 80%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_skip_header_non_supported[False-content-length] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_headers_not_modified_by_request[dict-True-True] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_headers_not_modified_by_request[dict-True-False] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_headers_not_modified_by_request[dict-False-True] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_headers_not_modified_by_request[dict-False-False] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_headers_not_modified_by_request[HTTPHeaderDict-True-True] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_headers_not_modified_by_request[HTTPHeaderDict-True-False] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_headers_not_modified_by_request[HTTPHeaderDict-False-True] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_headers_not_modified_by_request[HTTPHeaderDict-False-False] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_bytes_header PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_non_ascii_user_agent[Sch\xf6nefeld/1.18.00] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_non_ascii_user_agent[Sch\xf6nefeld/1.18.01] PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_user_agent_non_ascii_fails_on_python_2 SKIPPED [ 81%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_max_retry PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_disabled_retry PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_read_retries PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_read_total_retries PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_retries_wrong_whitelist PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_default_method_whitelist_retried PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_retries_wrong_method_list PASSED [ 81%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_read_retries_unsuccessful PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_retry_reuse_safe PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_retry_return_in_response PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_retry_redirect_history PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestRetry::test_multi_redirect_history PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestRetryAfter::test_retry_after PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestRetryAfter::test_redirect_after PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestFileBodiesOnRetryOrRedirect::test_retries_put_filehandle PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestFileBodiesOnRetryOrRedirect::test_redirect_put_file PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestFileBodiesOnRetryOrRedirect::test_redirect_with_failed_tell PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestRetryPoolSize::test_pool_size_retry PASSED [ 82%] test/with_dummyserver/test_connectionpool.py::TestRedirectPoolSize::test_pool_size_redirect PASSED [ 82%] test/with_dummyserver/test_https.py::TestHTTPS::test_simple PASSED [ 82%] test/with_dummyserver/test_https.py::TestHTTPS::test_dotted_fqdn PASSED [ 82%] test/with_dummyserver/test_https.py::TestHTTPS::test_client_intermediate PASSED [ 82%] test/with_dummyserver/test_https.py::TestHTTPS::test_client_no_intermediate PASSED [ 82%] test/with_dummyserver/test_https.py::TestHTTPS::test_client_key_password PASSED [ 82%] test/with_dummyserver/test_https.py::TestHTTPS::test_client_encrypted_key_requires_password PASSED [ 82%] test/with_dummyserver/test_https.py::TestHTTPS::test_verified PASSED [ 82%] test/with_dummyserver/test_https.py::TestHTTPS::test_verified_with_context PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_context_combines_with_ca_certs PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_ca_dir_verified PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_invalid_common_name PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_verified_with_bad_ca_certs PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_wrap_socket_failure_resource_leak PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_verified_without_ca_certs PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_no_ssl PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_unverified_ssl PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_ssl_unverified_with_ca_certs PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_assert_hostname_false PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_assert_specific_hostname PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_server_hostname PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_assert_fingerprint_md5 PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_assert_fingerprint_sha1 PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_assert_fingerprint_sha256 PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_assert_invalid_fingerprint PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_verify_none_and_bad_fingerprint PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_verify_none_and_good_fingerprint PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_good_fingerprint_and_hostname_mismatch PASSED [ 83%] test/with_dummyserver/test_https.py::TestHTTPS::test_https_timeout PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_tunnel PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_enhanced_timeout PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_enhanced_ssl_connection PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_ssl_correct_system_time PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_ssl_wrong_system_time PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_set_ssl_version_to_tls_version SKIPPED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_set_cert_default_cert_required PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_tls_protocol_name_of_socket SKIPPED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_default_tls_version_deprecations SKIPPED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_no_tls_version_deprecation_with_ssl_version SKIPPED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_no_tls_version_deprecation_with_ssl_context SKIPPED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_sslkeylogfile PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_sslkeylogfile_empty[None] PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_sslkeylogfile_empty[] PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS::test_alpn_default PASSED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_simple SKIPPED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_dotted_fqdn SKIPPED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_client_intermediate SKIPPED [ 84%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_client_no_intermediate SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_client_key_password SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_client_encrypted_key_requires_password SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_verified SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_verified_with_context SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_context_combines_with_ca_certs SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_ca_dir_verified SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_invalid_common_name SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_verified_with_bad_ca_certs SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_wrap_socket_failure_resource_leak SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_verified_without_ca_certs SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_no_ssl SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_unverified_ssl SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_ssl_unverified_with_ca_certs SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_assert_hostname_false SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_assert_specific_hostname SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_server_hostname SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_assert_fingerprint_md5 SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_assert_fingerprint_sha1 SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_assert_fingerprint_sha256 SKIPPED [ 85%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_assert_invalid_fingerprint SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_verify_none_and_bad_fingerprint SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_verify_none_and_good_fingerprint SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_good_fingerprint_and_hostname_mismatch SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_https_timeout SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_tunnel SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_enhanced_timeout SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_enhanced_ssl_connection SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_ssl_correct_system_time SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_ssl_wrong_system_time SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_set_ssl_version_to_tls_version SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_set_cert_default_cert_required SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_tls_protocol_name_of_socket SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_default_tls_version_deprecations SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_no_tls_version_deprecation_with_ssl_version SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_no_tls_version_deprecation_with_ssl_context SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_sslkeylogfile SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_sslkeylogfile_empty[None] SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_sslkeylogfile_empty[] SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_alpn_default SKIPPED [ 86%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_simple SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_dotted_fqdn SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_client_intermediate SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_client_no_intermediate SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_client_key_password SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_client_encrypted_key_requires_password SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_verified SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_verified_with_context SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_context_combines_with_ca_certs SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_ca_dir_verified SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_invalid_common_name SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_verified_with_bad_ca_certs SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_wrap_socket_failure_resource_leak SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_verified_without_ca_certs SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_no_ssl SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_unverified_ssl SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_ssl_unverified_with_ca_certs SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_assert_hostname_false SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_assert_specific_hostname SKIPPED [ 87%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_server_hostname SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_md5 SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_sha1 SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_assert_fingerprint_sha256 SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_assert_invalid_fingerprint SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_verify_none_and_bad_fingerprint SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_verify_none_and_good_fingerprint SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_good_fingerprint_and_hostname_mismatch SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_https_timeout SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_tunnel SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_enhanced_timeout SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_enhanced_ssl_connection SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_ssl_correct_system_time SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_ssl_wrong_system_time SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_set_ssl_version_to_tls_version SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_set_cert_default_cert_required SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_tls_protocol_name_of_socket SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_default_tls_version_deprecations SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_no_tls_version_deprecation_with_ssl_version SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_no_tls_version_deprecation_with_ssl_context SKIPPED [ 88%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_sslkeylogfile SKIPPED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_sslkeylogfile_empty[None] SKIPPED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_sslkeylogfile_empty[] SKIPPED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_alpn_default SKIPPED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_simple PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_dotted_fqdn PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_client_intermediate PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_client_no_intermediate PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_client_key_password PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_client_encrypted_key_requires_password PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_verified PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_verified_with_context PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_context_combines_with_ca_certs PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_ca_dir_verified PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_invalid_common_name PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_verified_with_bad_ca_certs PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_wrap_socket_failure_resource_leak PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_verified_without_ca_certs PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_no_ssl PASSED [ 89%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_unverified_ssl PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_ssl_unverified_with_ca_certs PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_assert_hostname_false PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_assert_specific_hostname PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_server_hostname PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_md5 PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_sha1 PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_assert_fingerprint_sha256 PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_assert_invalid_fingerprint PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_verify_none_and_bad_fingerprint PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_verify_none_and_good_fingerprint PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_good_fingerprint_and_hostname_mismatch PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_https_timeout PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_tunnel PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_enhanced_timeout PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_enhanced_ssl_connection PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_ssl_correct_system_time PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_ssl_wrong_system_time PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_set_ssl_version_to_tls_version PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_set_cert_default_cert_required PASSED [ 90%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_tls_protocol_name_of_socket PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_default_tls_version_deprecations PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_no_tls_version_deprecation_with_ssl_version PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_no_tls_version_deprecation_with_ssl_context PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_sslkeylogfile PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_sslkeylogfile_empty[None] PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_sslkeylogfile_empty[] PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_alpn_default PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_simple PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_dotted_fqdn PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_client_intermediate PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_client_no_intermediate PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_client_key_password PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_client_encrypted_key_requires_password PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_verified PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_verified_with_context PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_context_combines_with_ca_certs PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_ca_dir_verified PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_invalid_common_name PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_verified_with_bad_ca_certs PASSED [ 91%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_wrap_socket_failure_resource_leak PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_verified_without_ca_certs PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_no_ssl PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_unverified_ssl PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_ssl_unverified_with_ca_certs PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_assert_hostname_false PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_assert_specific_hostname PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_server_hostname PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_assert_fingerprint_md5 PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_assert_fingerprint_sha1 PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_assert_fingerprint_sha256 PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_assert_invalid_fingerprint PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_verify_none_and_bad_fingerprint PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_verify_none_and_good_fingerprint PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_good_fingerprint_and_hostname_mismatch PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_https_timeout PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_tunnel PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_enhanced_timeout PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_enhanced_ssl_connection PASSED [ 92%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_ssl_correct_system_time PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_ssl_wrong_system_time PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_set_ssl_version_to_tls_version PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_set_cert_default_cert_required PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_tls_protocol_name_of_socket PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_default_tls_version_deprecations PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_no_tls_version_deprecation_with_ssl_version PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_no_tls_version_deprecation_with_ssl_context PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_sslkeylogfile PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_sslkeylogfile_empty[None] PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_sslkeylogfile_empty[] PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_3::test_alpn_default PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_NoSAN::test_warning_for_certs_without_a_san PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_NoSAN::test_common_name_without_san_with_different_common_name PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_IPV4SAN::test_can_validate_ip_san PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_IPv6Addr::test_strip_square_brackets_before_validating[::1] PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_IPv6Addr::test_strip_square_brackets_before_validating[[::1]] PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_IPV6SAN::test_can_validate_ipv6_san[::1] PASSED [ 93%] test/with_dummyserver/test_https.py::TestHTTPS_IPV6SAN::test_can_validate_ipv6_san[[::1]] PASSED [ 93%] test/with_dummyserver/test_no_ssl.py::TestHTTPWithoutSSL::test_simple PASSED [ 93%] test/with_dummyserver/test_no_ssl.py::TestHTTPSWithoutSSL::test_simple PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_redirect PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_redirect_twice PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_redirect_to_relative_url PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_cross_host_redirect FAILED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_too_many_redirects PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_redirect_cross_host_remove_headers PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_redirect_cross_host_no_remove_headers PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_redirect_cross_host_set_removed_headers PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_redirect_without_preload_releases_connection PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_303_redirect_makes_request_lose_body PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_unknown_scheme PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_raise_on_redirect PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_raise_on_status PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_missing_port PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_headers PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_http_with_ssl_keywords PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_http_with_server_hostname PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_http_with_ca_cert_dir PASSED [ 94%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_encode_http_target[/echo_uri?q=1#fragment-/echo_uri?q=1] PASSED [ 95%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_encode_http_target[/echo_uri?#-/echo_uri?] PASSED [ 95%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_encode_http_target[/echo_uri#?-/echo_uri] PASSED [ 95%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_encode_http_target[/echo_uri#?#-/echo_uri] PASSED [ 95%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_encode_http_target[/echo_uri??#-/echo_uri??] PASSED [ 95%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_encode_http_target[/echo_uri?%3f#-/echo_uri?%3F] PASSED [ 95%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_encode_http_target[/echo_uri?%3F#-/echo_uri?%3F] PASSED [ 95%] test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_encode_http_target[/echo_uri?[]-/echo_uri?%5B%5D] PASSED [ 95%] test/with_dummyserver/test_poolmanager.py::TestIPv6PoolManager::test_ipv6 PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_basic_proxy PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy_with_proxy_ssl_context PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy_not_supported SKIPPED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy_pyopenssl_not_supported PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy_securetransport_not_supported SKIPPED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy_forwarding_for_https PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_nagle_proxy PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_proxy_conn_fail PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_oldapi PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_proxy_verified PASSED [ 95%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_proxy_verified_warning PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_redirect PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_cross_host_redirect PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_cross_protocol_redirect PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_headers PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_headers PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_headers_forwarding_for_https PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_headerdict PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_proxy_pooling PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_proxy_pooling_ext PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_forwarding_proxy_request_timeout[http-http-False] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_forwarding_proxy_request_timeout[https-http-False] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_forwarding_proxy_request_timeout[https-https-True] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_tunneling_proxy_request_timeout[http-https] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_tunneling_proxy_request_timeout[https-https] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_forwarding_proxy_connect_timeout[http-http-False] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_forwarding_proxy_connect_timeout[https-http-False] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_forwarding_proxy_connect_timeout[https-https-True] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_tunneling_proxy_connect_timeout[http-https] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_tunneling_proxy_connect_timeout[https-https] PASSED [ 96%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy_tls_error[http-False] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy_tls_error[https-False] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_https_proxy_tls_error[https-True] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_proxy_https_target_tls_error[http-False] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_proxy_https_target_tls_error[https-False] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_proxy_https_target_tls_error[https-True] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_invalid_schema[127.0.0.1-Proxy URL had no scheme, should start with http:// or https://] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_invalid_schema[localhost:8080-Proxy URL had no scheme, should start with http:// or https://] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPProxyManager::test_invalid_schema[ftp://google.com-Proxy URL had unsupported scheme ftp, should use http:// or https://] PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPSProxyVerification::test_https_proxy_hostname_verification PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPSProxyVerification::test_https_proxy_ipv4_san PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPSProxyVerification::test_https_proxy_ipv6_san PASSED [ 97%] test/with_dummyserver/test_proxy_poolmanager.py::TestHTTPSProxyVerification::test_https_proxy_common_name_warning PASSED [ 97%] test/with_dummyserver/test_socketlevel.py::TestCookies::test_multi_setcookie PASSED [ 97%] test/with_dummyserver/test_socketlevel.py::TestSNI::test_hostname_in_first_request_packet PASSED [ 97%] test/with_dummyserver/test_socketlevel.py::TestALPN::test_alpn_protocol_in_first_request_packet PASSED [ 97%] test/with_dummyserver/test_socketlevel.py::TestClientCerts::test_load_keyfile_with_invalid_password PASSED [ 97%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_recovery_when_server_closes_connection PASSED [ 97%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_connection_refused PASSED [ 97%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_connection_read_timeout PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_read_timeout_dont_retry_method_not_in_allowlist PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_https_connection_read_timeout PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_timeout_errors_cause_retries FAILED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_delayed_body_read_timeout PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_delayed_body_read_timeout_with_preload PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_incomplete_response PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_retry_weird_http_version PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_connection_cleanup_on_read_timeout PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_connection_cleanup_on_protocol_error_during_read PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_connection_closed_on_read_timeout_preload_false PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_closing_response_actually_closes_connection FAILED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_release_conn_param_is_respected_after_timeout_retry PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestProxyManager::test_simple PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestProxyManager::test_headers PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestProxyManager::test_retries PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_load_default_certs_when_empty PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_dont_load_default_certs_when_given PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestSSL::test_load_verify_locations_exception PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestErrorWrapping::test_bad_statusline PASSED [ 98%] test/with_dummyserver/test_socketlevel.py::TestErrorWrapping::test_unknown_protocol PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHeaders::test_httplib_headers_case_insensitive PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHeaders::test_headers_are_sent_with_the_original_case PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHeaders::test_ua_header_can_be_overridden PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHeaders::test_request_headers_are_sent_in_the_original_order PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHeaders::test_request_host_header_ignores_fqdn_dot PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHeaders::test_response_headers_are_returned_in_the_original_order PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestBrokenHeaders::test_header_without_name PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestBrokenHeaders::test_header_without_name_or_value PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestBrokenHeaders::test_header_without_colon_or_value PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHeaderParsingContentType::test_header_text_plain PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHeaderParsingContentType::test_header_message_rfc822 PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHEAD::test_chunked_head_response_does_not_hang PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestHEAD::test_empty_head_response_does_not_hang PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestStream::test_stream_none_unchunked_response_does_not_hang PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestBadContentLength::test_enforce_content_length_get PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestBadContentLength::test_enforce_content_length_no_body PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestRetryPoolSizeDrainFail::test_pool_size_retry_drain_fail PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestBrokenPipe::test_ignore_broken_pipe_errors PASSED [ 99%] test/with_dummyserver/test_socketlevel.py::TestMultipartResponse::test_multipart_assert_header_parsing_no_defects PASSED [100%] =================================== FAILURES =================================== _____________ TestSocketClosing.test_timeout_errors_cause_retries ______________ 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), read_timeout = 0.01 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.resolve_default_timeout(timeout_obj.connect_timeout) # Trigger any extra validation we need to do. try: self._validate_conn(conn) except (SocketTimeout, BaseSSLError) as e: # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout. self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) raise # conn.request() calls http.client.*.request, not the method in # urllib3.request. It also calls makefile (recv) on the socket. try: if chunked: conn.request_chunked(method, url, **httplib_request_kw) else: conn.request(method, url, **httplib_request_kw) # We are swallowing BrokenPipeError (errno.EPIPE) since the server is # legitimately able to close the connection after sending a valid response. # With this behaviour, the received response is still readable. except BrokenPipeError: # Python 3 pass except IOError as e: # Python 2 and macOS/Linux # EPIPE and ESHUTDOWN are BrokenPipeError on Python 2, and EPROTOTYPE is needed on macOS # https://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ if e.errno not in { errno.EPIPE, errno.ESHUTDOWN, errno.EPROTOTYPE, }: raise # Reset the timeout for the recv() on the socket read_timeout = timeout_obj.read_timeout # App Engine doesn't have a sock attr if getattr(conn, "sock", None): # In Python 3 socket.py will catch EAGAIN and return None when you # try and read into the file pointer created by http.client, which # instead raises a BadStatusLine exception. Instead of catching # the exception and assuming all BadStatusLine exceptions are read # timeouts, check for a zero timeout before making the request. if read_timeout == 0: raise ReadTimeoutError( self, url, "Read timed out. (read timeout=%s)" % read_timeout ) if read_timeout is Timeout.DEFAULT_TIMEOUT: conn.sock.settimeout(socket.getdefaulttimeout()) else: # None or a value conn.sock.settimeout(read_timeout) # Receive the response from the server try: try: # Python 2.7, use buffering of HTTP responses httplib_response = conn.getresponse(buffering=True) except TypeError: # Python 3 try: httplib_response = conn.getresponse() except BaseException as e: # Remove the TypeError from the exception chain in # Python 3 (including for exceptions like SystemExit). # Otherwise it looks like a bug in the code. > six.raise_from(e, None) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:467: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:462: in _make_request httplib_response = conn.getresponse() /usr/lib/python3.12/http/client.py:1428: in getresponse response.begin() /usr/lib/python3.12/http/client.py:331: in begin version, status, reason = self._read_status() /usr/lib/python3.12/http/client.py:292: in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , b = def readinto(self, b): """Read up to len(b) bytes into the writable buffer *b* and return the number of bytes read. If the socket is non-blocking and no bytes are available, None is returned. If *b* is non-empty, a 0 return value indicates that the connection was shutdown at the other end. """ self._checkClosed() self._checkReadable() if self._timeout_occurred: raise OSError("cannot read from timed out object") while True: try: > return self._sock.recv_into(b) E TimeoutError: timed out /usr/lib/python3.12/socket.py:708: TimeoutError During handling of the above exception, another exception occurred: self = method = 'GET', url = '/', body = None, headers = {} retries = Retry(total=0, connect=None, read=None, redirect=None, status=None) redirect = True, assert_same_host = True timeout = , pool_timeout = None release_conn = True, chunked = False, body_pos = None response_kw = {'request_url': '/'} parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/', query=None, fragment=None) destination_scheme = None, conn = None, release_this_conn = True http_tunnel_required = False, err = None, clean_exit = False def urlopen( self, method, url, body=None, headers=None, retries=None, redirect=True, assert_same_host=True, timeout=_Default, pool_timeout=None, release_conn=None, chunked=False, body_pos=None, **response_kw ): """ Get a connection from the pool and perform an HTTP request. This is the lowest level call for making a request, so you'll need to specify all the raw details. .. note:: More commonly, it's appropriate to use a convenience method provided by :class:`.RequestMethods`, such as :meth:`request`. .. note:: `release_conn` will only behave as expected if `preload_content=False` because we want to make `preload_content=False` the default behaviour someday soon without breaking backwards compatibility. :param method: HTTP request method (such as GET, POST, PUT, etc.) :param url: The URL to perform the request on. :param body: Data to send in the request body, either :class:`str`, :class:`bytes`, an iterable of :class:`str`/:class:`bytes`, or a file-like object. :param headers: Dictionary of custom headers to send, such as User-Agent, If-None-Match, etc. If None, pool headers are used. If provided, these headers completely replace any pool-specific headers. :param retries: Configure the number of retries to allow before raising a :class:`~urllib3.exceptions.MaxRetryError` exception. Pass ``None`` to retry until you receive a response. Pass a :class:`~urllib3.util.retry.Retry` object for fine-grained control over different types of retries. Pass an integer number to retry connection errors that many times, but no other types of errors. Pass zero to never retry. If ``False``, then retries are disabled and any exception is raised immediately. Also, instead of raising a MaxRetryError on redirects, the redirect response will be returned. :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. :param redirect: If True, automatically handle redirects (status codes 301, 302, 303, 307, 308). Each redirect counts as a retry. Disabling retries will disable redirect, too. :param assert_same_host: If ``True``, will make sure that the host of the pool requests is consistent else will raise HostChangedError. When ``False``, you can use the pool on an HTTP proxy and request foreign hosts. :param timeout: If specified, overrides the default timeout for this one request. It may be a float (in seconds) or an instance of :class:`urllib3.util.Timeout`. :param pool_timeout: If set and the pool is set to block=True, then this method will block for ``pool_timeout`` seconds and raise EmptyPoolError if no connection is available within the time period. :param release_conn: If False, then the urlopen call will not release the connection back into the pool once a response is received (but will release if you read the entire contents of the response such as when `preload_content=True`). This is useful if you're not preloading the response's content immediately. You will need to call ``r.release_conn()`` on the response ``r`` to return the connection back into the pool. If None, it takes the value of ``response_kw.get('preload_content', True)``. :param chunked: If True, urllib3 will send the body using chunked transfer encoding. Otherwise, urllib3 will send the body using the standard content-length form. Defaults to False. :param int body_pos: Position to seek to in file-like body in the event of a retry or redirect. Typically this won't need to be set because urllib3 will auto-populate the value when needed. :param \\**response_kw: Additional parameters are passed to :meth:`urllib3.response.HTTPResponse.from_httplib` """ parsed_url = parse_url(url) destination_scheme = parsed_url.scheme if headers is None: headers = self.headers if not isinstance(retries, Retry): retries = Retry.from_int(retries, redirect=redirect, default=self.retries) if release_conn is None: release_conn = response_kw.get("preload_content", True) # Check host if assert_same_host and not self.is_same_host(url): raise HostChangedError(self, url, retries) # Ensure that the URL we're connecting to is properly encoded if url.startswith("/"): url = six.ensure_str(_encode_target(url)) else: url = six.ensure_str(parsed_url.url) conn = None # Track whether `conn` needs to be released before # returning/raising/recursing. Update this variable if necessary, and # leave `release_conn` constant throughout the function. That way, if # the function recurses, the original value of `release_conn` will be # passed down into the recursive call, and its value will be respected. # # See issue #651 [1] for details. # # [1] release_this_conn = release_conn http_tunnel_required = connection_requires_http_tunnel( self.proxy, self.proxy_config, destination_scheme ) # Merge the proxy headers. Only done when not using HTTP CONNECT. We # have to copy the headers dict so we can safely change it without those # changes being reflected in anyone else's copy. if not http_tunnel_required: headers = headers.copy() headers.update(self.proxy_headers) # Must keep the exception bound to a separate variable or else Python 3 # complains about UnboundLocalError. err = None # Keep track of whether we cleanly exited the except block. This # ensures we do proper cleanup in finally. clean_exit = False # Rewind body position, if needed. Record current position # for future rewinds in the event of a redirect/retry. body_pos = set_file_position(body, body_pos) try: # Request a connection from the queue. timeout_obj = self._get_timeout(timeout) conn = self._get_conn(timeout=pool_timeout) conn.timeout = timeout_obj.connect_timeout is_new_proxy_conn = self.proxy is not None and not getattr( conn, "sock", None ) if is_new_proxy_conn and http_tunnel_required: self._prepare_proxy(conn) # Make the request on the httplib connection object. > httplib_response = self._make_request( conn, method, url, timeout=timeout_obj, body=body, headers=headers, chunked=chunked, ) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:715: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:469: in _make_request self._raise_timeout(err=e, url=url, timeout_value=read_timeout) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = err = TimeoutError('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: HTTPConnectionPool(host='localhost', port=43173): Read timed out. (read timeout=0.01) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:358: ReadTimeoutError During handling of the above exception, another exception occurred: self = def test_timeout_errors_cause_retries(self): def socket_handler(listener): sock_timeout = listener.accept()[0] # Wait for a second request before closing the first socket. sock = listener.accept()[0] sock_timeout.close() # Second request. buf = b"" while not buf.endswith(b"\r\n\r\n"): buf += sock.recv(65536) # Now respond immediately. body = "Response 2" sock.send( ( "HTTP/1.1 200 OK\r\n" "Content-Type: text/plain\r\n" "Content-Length: %d\r\n" "\r\n" "%s" % (len(body), body) ).encode("utf-8") ) sock.close() # In situations where the main thread throws an exception, the server # thread can hang on an accept() call. This ensures everything times # out within 1 second. This should be long enough for any socket # operations in the test suite to complete default_timeout = socket.getdefaulttimeout() socket.setdefaulttimeout(1) try: self._start_server(socket_handler) t = Timeout(connect=LONG_TIMEOUT, read=LONG_TIMEOUT) with HTTPConnectionPool(self.host, self.port, timeout=t) as pool: > response = pool.request("GET", "/", retries=1) test/with_dummyserver/test_socketlevel.py:531: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/request.py:77: in request return self.request_encode_url( test_dir/usr/lib/python3.12/site-packages/urllib3/request.py:99: in request_encode_url return self.urlopen(method, url, **extra_kw) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:829: in urlopen return self.urlopen( test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:801: in urlopen retries = retries.increment( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Retry(total=0, connect=None, read=None, redirect=None, status=None) method = 'GET', url = '/', response = None error = ReadTimeoutError("HTTPConnectionPool(host='localhost', port=43173): Read timed out. (read timeout=0.01)") _pool = _stacktrace = def increment( self, method=None, url=None, response=None, error=None, _pool=None, _stacktrace=None, ): """Return a new Retry object with incremented retry counters. :param response: A response object, or None, if the server did not return a response. :type response: :class:`~urllib3.response.HTTPResponse` :param Exception error: An error encountered during the request, or None if the response was received successfully. :return: A new ``Retry`` object. """ if self.total is False and error: # Disabled, indicate to re-raise the error. raise six.reraise(type(error), error, _stacktrace) total = self.total if total is not None: total -= 1 connect = self.connect read = self.read redirect = self.redirect status_count = self.status other = self.other cause = "unknown" status = None redirect_location = None if error and self._is_connection_error(error): # Connect retry? if connect is False: raise six.reraise(type(error), error, _stacktrace) elif connect is not None: connect -= 1 elif error and self._is_read_error(error): # Read retry? if read is False or not self._is_method_retryable(method): raise six.reraise(type(error), error, _stacktrace) elif read is not None: read -= 1 elif error: # Other retry? if other is not None: other -= 1 elif response and response.get_redirect_location(): # Redirect retry? if redirect is not None: redirect -= 1 cause = "too many redirects" redirect_location = response.get_redirect_location() status = response.status else: # Incrementing because of a server error like a 500 in # status_forcelist and the given method is in the allowed_methods cause = ResponseError.GENERIC_ERROR if response and response.status: if status_count is not None: status_count -= 1 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) status = response.status history = self.history + ( RequestHistory(method, url, error, status, redirect_location), ) new_retry = self.new( total=total, connect=connect, read=read, redirect=redirect, status=status_count, other=other, history=history, ) if new_retry.is_exhausted(): > raise MaxRetryError(_pool, url, error or ResponseError(cause)) E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=43173): Max retries exceeded with url: / (Caused by ReadTimeoutError("HTTPConnectionPool(host='localhost', port=43173): Read timed out. (read timeout=0.01)")) test_dir/usr/lib/python3.12/site-packages/urllib3/util/retry.py:594: MaxRetryError ----------------------------- Captured stdout call ----------------------------- Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=43173): Read timed out. (read timeout=0.01)")': / Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=43173): Read timed out. (read timeout=0.01)")': / ------------------------------ Captured log call ------------------------------- WARNING urllib3.connectionpool:connectionpool.py:826 Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=43173): Read timed out. (read timeout=0.01)")': / ____ TestSocketClosing.test_connection_closed_on_read_timeout_preload_false ____ 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), read_timeout = 0.01 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.resolve_default_timeout(timeout_obj.connect_timeout) # Trigger any extra validation we need to do. try: self._validate_conn(conn) except (SocketTimeout, BaseSSLError) as e: # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout. self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) raise # conn.request() calls http.client.*.request, not the method in # urllib3.request. It also calls makefile (recv) on the socket. try: if chunked: conn.request_chunked(method, url, **httplib_request_kw) else: conn.request(method, url, **httplib_request_kw) # We are swallowing BrokenPipeError (errno.EPIPE) since the server is # legitimately able to close the connection after sending a valid response. # With this behaviour, the received response is still readable. except BrokenPipeError: # Python 3 pass except IOError as e: # Python 2 and macOS/Linux # EPIPE and ESHUTDOWN are BrokenPipeError on Python 2, and EPROTOTYPE is needed on macOS # https://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ if e.errno not in { errno.EPIPE, errno.ESHUTDOWN, errno.EPROTOTYPE, }: raise # Reset the timeout for the recv() on the socket read_timeout = timeout_obj.read_timeout # App Engine doesn't have a sock attr if getattr(conn, "sock", None): # In Python 3 socket.py will catch EAGAIN and return None when you # try and read into the file pointer created by http.client, which # instead raises a BadStatusLine exception. Instead of catching # the exception and assuming all BadStatusLine exceptions are read # timeouts, check for a zero timeout before making the request. if read_timeout == 0: raise ReadTimeoutError( self, url, "Read timed out. (read timeout=%s)" % read_timeout ) if read_timeout is Timeout.DEFAULT_TIMEOUT: conn.sock.settimeout(socket.getdefaulttimeout()) else: # None or a value conn.sock.settimeout(read_timeout) # Receive the response from the server try: try: # Python 2.7, use buffering of HTTP responses httplib_response = conn.getresponse(buffering=True) except TypeError: # Python 3 try: httplib_response = conn.getresponse() except BaseException as e: # Remove the TypeError from the exception chain in # Python 3 (including for exceptions like SystemExit). # Otherwise it looks like a bug in the code. > six.raise_from(e, None) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:467: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:462: in _make_request httplib_response = conn.getresponse() /usr/lib/python3.12/http/client.py:1428: in getresponse response.begin() /usr/lib/python3.12/http/client.py:331: in begin version, status, reason = self._read_status() /usr/lib/python3.12/http/client.py:292: in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , b = def readinto(self, b): """Read up to len(b) bytes into the writable buffer *b* and return the number of bytes read. If the socket is non-blocking and no bytes are available, None is returned. If *b* is non-empty, a 0 return value indicates that the connection was shutdown at the other end. """ self._checkClosed() self._checkReadable() if self._timeout_occurred: raise OSError("cannot read from timed out object") while True: try: > return self._sock.recv_into(b) E TimeoutError: timed out /usr/lib/python3.12/socket.py:708: TimeoutError During handling of the above exception, another exception occurred: self = method = 'GET', url = '/', body = None, headers = {} retries = Retry(total=0, connect=None, read=None, redirect=None, status=None) redirect = True, assert_same_host = True, timeout = 0.01, pool_timeout = None release_conn = False, chunked = False, body_pos = None response_kw = {'preload_content': False} parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/', query=None, fragment=None) destination_scheme = None, conn = None, release_this_conn = True http_tunnel_required = False, err = None, clean_exit = False def urlopen( self, method, url, body=None, headers=None, retries=None, redirect=True, assert_same_host=True, timeout=_Default, pool_timeout=None, release_conn=None, chunked=False, body_pos=None, **response_kw ): """ Get a connection from the pool and perform an HTTP request. This is the lowest level call for making a request, so you'll need to specify all the raw details. .. note:: More commonly, it's appropriate to use a convenience method provided by :class:`.RequestMethods`, such as :meth:`request`. .. note:: `release_conn` will only behave as expected if `preload_content=False` because we want to make `preload_content=False` the default behaviour someday soon without breaking backwards compatibility. :param method: HTTP request method (such as GET, POST, PUT, etc.) :param url: The URL to perform the request on. :param body: Data to send in the request body, either :class:`str`, :class:`bytes`, an iterable of :class:`str`/:class:`bytes`, or a file-like object. :param headers: Dictionary of custom headers to send, such as User-Agent, If-None-Match, etc. If None, pool headers are used. If provided, these headers completely replace any pool-specific headers. :param retries: Configure the number of retries to allow before raising a :class:`~urllib3.exceptions.MaxRetryError` exception. Pass ``None`` to retry until you receive a response. Pass a :class:`~urllib3.util.retry.Retry` object for fine-grained control over different types of retries. Pass an integer number to retry connection errors that many times, but no other types of errors. Pass zero to never retry. If ``False``, then retries are disabled and any exception is raised immediately. Also, instead of raising a MaxRetryError on redirects, the redirect response will be returned. :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. :param redirect: If True, automatically handle redirects (status codes 301, 302, 303, 307, 308). Each redirect counts as a retry. Disabling retries will disable redirect, too. :param assert_same_host: If ``True``, will make sure that the host of the pool requests is consistent else will raise HostChangedError. When ``False``, you can use the pool on an HTTP proxy and request foreign hosts. :param timeout: If specified, overrides the default timeout for this one request. It may be a float (in seconds) or an instance of :class:`urllib3.util.Timeout`. :param pool_timeout: If set and the pool is set to block=True, then this method will block for ``pool_timeout`` seconds and raise EmptyPoolError if no connection is available within the time period. :param release_conn: If False, then the urlopen call will not release the connection back into the pool once a response is received (but will release if you read the entire contents of the response such as when `preload_content=True`). This is useful if you're not preloading the response's content immediately. You will need to call ``r.release_conn()`` on the response ``r`` to return the connection back into the pool. If None, it takes the value of ``response_kw.get('preload_content', True)``. :param chunked: If True, urllib3 will send the body using chunked transfer encoding. Otherwise, urllib3 will send the body using the standard content-length form. Defaults to False. :param int body_pos: Position to seek to in file-like body in the event of a retry or redirect. Typically this won't need to be set because urllib3 will auto-populate the value when needed. :param \\**response_kw: Additional parameters are passed to :meth:`urllib3.response.HTTPResponse.from_httplib` """ parsed_url = parse_url(url) destination_scheme = parsed_url.scheme if headers is None: headers = self.headers if not isinstance(retries, Retry): retries = Retry.from_int(retries, redirect=redirect, default=self.retries) if release_conn is None: release_conn = response_kw.get("preload_content", True) # Check host if assert_same_host and not self.is_same_host(url): raise HostChangedError(self, url, retries) # Ensure that the URL we're connecting to is properly encoded if url.startswith("/"): url = six.ensure_str(_encode_target(url)) else: url = six.ensure_str(parsed_url.url) conn = None # Track whether `conn` needs to be released before # returning/raising/recursing. Update this variable if necessary, and # leave `release_conn` constant throughout the function. That way, if # the function recurses, the original value of `release_conn` will be # passed down into the recursive call, and its value will be respected. # # See issue #651 [1] for details. # # [1] release_this_conn = release_conn http_tunnel_required = connection_requires_http_tunnel( self.proxy, self.proxy_config, destination_scheme ) # Merge the proxy headers. Only done when not using HTTP CONNECT. We # have to copy the headers dict so we can safely change it without those # changes being reflected in anyone else's copy. if not http_tunnel_required: headers = headers.copy() headers.update(self.proxy_headers) # Must keep the exception bound to a separate variable or else Python 3 # complains about UnboundLocalError. err = None # Keep track of whether we cleanly exited the except block. This # ensures we do proper cleanup in finally. clean_exit = False # Rewind body position, if needed. Record current position # for future rewinds in the event of a redirect/retry. body_pos = set_file_position(body, body_pos) try: # Request a connection from the queue. timeout_obj = self._get_timeout(timeout) conn = self._get_conn(timeout=pool_timeout) conn.timeout = timeout_obj.connect_timeout is_new_proxy_conn = self.proxy is not None and not getattr( conn, "sock", None ) if is_new_proxy_conn and http_tunnel_required: self._prepare_proxy(conn) # Make the request on the httplib connection object. > httplib_response = self._make_request( conn, method, url, timeout=timeout_obj, body=body, headers=headers, chunked=chunked, ) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:715: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:469: in _make_request self._raise_timeout(err=e, url=url, timeout_value=read_timeout) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = err = TimeoutError('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: HTTPConnectionPool(host='localhost', port=45363): Read timed out. (read timeout=0.01) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:358: ReadTimeoutError During handling of the above exception, another exception occurred: self = def test_connection_closed_on_read_timeout_preload_false(self): timed_out = Event() def socket_handler(listener): sock = listener.accept()[0] # Consume request buf = b"" while not buf.endswith(b"\r\n\r\n"): buf = sock.recv(65535) # Send partial chunked response and then hang. sock.send( ( "HTTP/1.1 200 OK\r\n" "Content-Type: text/plain\r\n" "Transfer-Encoding: chunked\r\n" "\r\n" "8\r\n" "12345678\r\n" ).encode("utf-8") ) timed_out.wait(5) # Expect a new request, but keep hold of the old socket to avoid # leaking it. Because we don't want to hang this thread, we # actually use select.select to confirm that a new request is # coming in: this lets us time the thread out. rlist, _, _ = select.select([listener], [], []) assert rlist new_sock = listener.accept()[0] # Consume request buf = b"" while not buf.endswith(b"\r\n\r\n"): buf = new_sock.recv(65535) # Send complete chunked response. new_sock.send( ( "HTTP/1.1 200 OK\r\n" "Content-Type: text/plain\r\n" "Transfer-Encoding: chunked\r\n" "\r\n" "8\r\n" "12345678\r\n" "0\r\n\r\n" ).encode("utf-8") ) new_sock.close() sock.close() self._start_server(socket_handler) with HTTPConnectionPool(self.host, self.port) as pool: # First request should fail. response = pool.urlopen( "GET", "/", retries=0, preload_content=False, timeout=LONG_TIMEOUT ) try: with pytest.raises(ReadTimeoutError): response.read() finally: timed_out.set() # Second should succeed. > response = pool.urlopen( "GET", "/", retries=0, preload_content=False, timeout=LONG_TIMEOUT ) test/with_dummyserver/test_socketlevel.py:817: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:801: in urlopen retries = retries.increment( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Retry(total=0, connect=None, read=None, redirect=None, status=None) method = 'GET', url = '/', response = None error = ReadTimeoutError("HTTPConnectionPool(host='localhost', port=45363): Read timed out. (read timeout=0.01)") _pool = _stacktrace = def increment( self, method=None, url=None, response=None, error=None, _pool=None, _stacktrace=None, ): """Return a new Retry object with incremented retry counters. :param response: A response object, or None, if the server did not return a response. :type response: :class:`~urllib3.response.HTTPResponse` :param Exception error: An error encountered during the request, or None if the response was received successfully. :return: A new ``Retry`` object. """ if self.total is False and error: # Disabled, indicate to re-raise the error. raise six.reraise(type(error), error, _stacktrace) total = self.total if total is not None: total -= 1 connect = self.connect read = self.read redirect = self.redirect status_count = self.status other = self.other cause = "unknown" status = None redirect_location = None if error and self._is_connection_error(error): # Connect retry? if connect is False: raise six.reraise(type(error), error, _stacktrace) elif connect is not None: connect -= 1 elif error and self._is_read_error(error): # Read retry? if read is False or not self._is_method_retryable(method): raise six.reraise(type(error), error, _stacktrace) elif read is not None: read -= 1 elif error: # Other retry? if other is not None: other -= 1 elif response and response.get_redirect_location(): # Redirect retry? if redirect is not None: redirect -= 1 cause = "too many redirects" redirect_location = response.get_redirect_location() status = response.status else: # Incrementing because of a server error like a 500 in # status_forcelist and the given method is in the allowed_methods cause = ResponseError.GENERIC_ERROR if response and response.status: if status_count is not None: status_count -= 1 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) status = response.status history = self.history + ( RequestHistory(method, url, error, status, redirect_location), ) new_retry = self.new( total=total, connect=connect, read=read, redirect=redirect, status=status_count, other=other, history=history, ) if new_retry.is_exhausted(): > raise MaxRetryError(_pool, url, error or ResponseError(cause)) E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=45363): Max retries exceeded with url: / (Caused by ReadTimeoutError("HTTPConnectionPool(host='localhost', port=45363): Read timed out. (read timeout=0.01)")) test_dir/usr/lib/python3.12/site-packages/urllib3/util/retry.py:594: MaxRetryError ______ TestSocketClosing.test_closing_response_actually_closes_connection ______ self = def test_closing_response_actually_closes_connection(self): done_closing = Event() complete = Event() def socket_handler(listener): sock = listener.accept()[0] buf = b"" while not buf.endswith(b"\r\n\r\n"): buf = sock.recv(65536) sock.send( ( "HTTP/1.1 200 OK\r\n" "Content-Type: text/plain\r\n" "Content-Length: 0\r\n" "\r\n" ).encode("utf-8") ) # Wait for the socket to close. done_closing.wait(timeout=LONG_TIMEOUT) # Look for the empty string to show that the connection got closed. # Don't get stuck in a timeout. sock.settimeout(LONG_TIMEOUT) new_data = sock.recv(65536) assert not new_data sock.close() complete.set() self._start_server(socket_handler) with HTTPConnectionPool(self.host, self.port) as pool: response = pool.request("GET", "/", retries=0, preload_content=False) assert response.status == 200 response.close() done_closing.set() # wait until the socket in our pool gets closed successful = complete.wait(timeout=LONG_TIMEOUT) > assert successful, "Timed out waiting for connection close" E AssertionError: Timed out waiting for connection close E assert False test/with_dummyserver/test_socketlevel.py:861: AssertionError ___________________ TestPoolManager.test_cross_host_redirect ___________________ self = conn = method = 'GET', url = '/echo?a=b' timeout = Timeout(connect=0.01, read=0.01, total=None), chunked = False httplib_request_kw = {'body': None, 'headers': HTTPHeaderDict({})} timeout_obj = Timeout(connect=0.01, read=0.01, total=None), read_timeout = 0.01 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.resolve_default_timeout(timeout_obj.connect_timeout) # Trigger any extra validation we need to do. try: self._validate_conn(conn) except (SocketTimeout, BaseSSLError) as e: # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout. self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) raise # conn.request() calls http.client.*.request, not the method in # urllib3.request. It also calls makefile (recv) on the socket. try: if chunked: conn.request_chunked(method, url, **httplib_request_kw) else: conn.request(method, url, **httplib_request_kw) # We are swallowing BrokenPipeError (errno.EPIPE) since the server is # legitimately able to close the connection after sending a valid response. # With this behaviour, the received response is still readable. except BrokenPipeError: # Python 3 pass except IOError as e: # Python 2 and macOS/Linux # EPIPE and ESHUTDOWN are BrokenPipeError on Python 2, and EPROTOTYPE is needed on macOS # https://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ if e.errno not in { errno.EPIPE, errno.ESHUTDOWN, errno.EPROTOTYPE, }: raise # Reset the timeout for the recv() on the socket read_timeout = timeout_obj.read_timeout # App Engine doesn't have a sock attr if getattr(conn, "sock", None): # In Python 3 socket.py will catch EAGAIN and return None when you # try and read into the file pointer created by http.client, which # instead raises a BadStatusLine exception. Instead of catching # the exception and assuming all BadStatusLine exceptions are read # timeouts, check for a zero timeout before making the request. if read_timeout == 0: raise ReadTimeoutError( self, url, "Read timed out. (read timeout=%s)" % read_timeout ) if read_timeout is Timeout.DEFAULT_TIMEOUT: conn.sock.settimeout(socket.getdefaulttimeout()) else: # None or a value conn.sock.settimeout(read_timeout) # Receive the response from the server try: try: # Python 2.7, use buffering of HTTP responses httplib_response = conn.getresponse(buffering=True) except TypeError: # Python 3 try: httplib_response = conn.getresponse() except BaseException as e: # Remove the TypeError from the exception chain in # Python 3 (including for exceptions like SystemExit). # Otherwise it looks like a bug in the code. > six.raise_from(e, None) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:467: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:462: in _make_request httplib_response = conn.getresponse() /usr/lib/python3.12/http/client.py:1428: in getresponse response.begin() /usr/lib/python3.12/http/client.py:331: in begin version, status, reason = self._read_status() /usr/lib/python3.12/http/client.py:292: in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , b = def readinto(self, b): """Read up to len(b) bytes into the writable buffer *b* and return the number of bytes read. If the socket is non-blocking and no bytes are available, None is returned. If *b* is non-empty, a 0 return value indicates that the connection was shutdown at the other end. """ self._checkClosed() self._checkReadable() if self._timeout_occurred: raise OSError("cannot read from timed out object") while True: try: > return self._sock.recv_into(b) E TimeoutError: timed out /usr/lib/python3.12/socket.py:708: TimeoutError During handling of the above exception, another exception occurred: self = method = 'GET', url = '/echo?a=b', body = None, headers = HTTPHeaderDict({}) retries = Retry(total=0, connect=None, read=None, redirect=None, status=None) redirect = False, assert_same_host = False, timeout = 0.01, pool_timeout = None release_conn = True, chunked = False, body_pos = None response_kw = {'request_url': 'http://localhost:35073/redirect'} parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/echo', query='a=b', fragment=None) destination_scheme = None, conn = None, release_this_conn = True http_tunnel_required = False, err = None, clean_exit = False def urlopen( self, method, url, body=None, headers=None, retries=None, redirect=True, assert_same_host=True, timeout=_Default, pool_timeout=None, release_conn=None, chunked=False, body_pos=None, **response_kw ): """ Get a connection from the pool and perform an HTTP request. This is the lowest level call for making a request, so you'll need to specify all the raw details. .. note:: More commonly, it's appropriate to use a convenience method provided by :class:`.RequestMethods`, such as :meth:`request`. .. note:: `release_conn` will only behave as expected if `preload_content=False` because we want to make `preload_content=False` the default behaviour someday soon without breaking backwards compatibility. :param method: HTTP request method (such as GET, POST, PUT, etc.) :param url: The URL to perform the request on. :param body: Data to send in the request body, either :class:`str`, :class:`bytes`, an iterable of :class:`str`/:class:`bytes`, or a file-like object. :param headers: Dictionary of custom headers to send, such as User-Agent, If-None-Match, etc. If None, pool headers are used. If provided, these headers completely replace any pool-specific headers. :param retries: Configure the number of retries to allow before raising a :class:`~urllib3.exceptions.MaxRetryError` exception. Pass ``None`` to retry until you receive a response. Pass a :class:`~urllib3.util.retry.Retry` object for fine-grained control over different types of retries. Pass an integer number to retry connection errors that many times, but no other types of errors. Pass zero to never retry. If ``False``, then retries are disabled and any exception is raised immediately. Also, instead of raising a MaxRetryError on redirects, the redirect response will be returned. :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. :param redirect: If True, automatically handle redirects (status codes 301, 302, 303, 307, 308). Each redirect counts as a retry. Disabling retries will disable redirect, too. :param assert_same_host: If ``True``, will make sure that the host of the pool requests is consistent else will raise HostChangedError. When ``False``, you can use the pool on an HTTP proxy and request foreign hosts. :param timeout: If specified, overrides the default timeout for this one request. It may be a float (in seconds) or an instance of :class:`urllib3.util.Timeout`. :param pool_timeout: If set and the pool is set to block=True, then this method will block for ``pool_timeout`` seconds and raise EmptyPoolError if no connection is available within the time period. :param release_conn: If False, then the urlopen call will not release the connection back into the pool once a response is received (but will release if you read the entire contents of the response such as when `preload_content=True`). This is useful if you're not preloading the response's content immediately. You will need to call ``r.release_conn()`` on the response ``r`` to return the connection back into the pool. If None, it takes the value of ``response_kw.get('preload_content', True)``. :param chunked: If True, urllib3 will send the body using chunked transfer encoding. Otherwise, urllib3 will send the body using the standard content-length form. Defaults to False. :param int body_pos: Position to seek to in file-like body in the event of a retry or redirect. Typically this won't need to be set because urllib3 will auto-populate the value when needed. :param \\**response_kw: Additional parameters are passed to :meth:`urllib3.response.HTTPResponse.from_httplib` """ parsed_url = parse_url(url) destination_scheme = parsed_url.scheme if headers is None: headers = self.headers if not isinstance(retries, Retry): retries = Retry.from_int(retries, redirect=redirect, default=self.retries) if release_conn is None: release_conn = response_kw.get("preload_content", True) # Check host if assert_same_host and not self.is_same_host(url): raise HostChangedError(self, url, retries) # Ensure that the URL we're connecting to is properly encoded if url.startswith("/"): url = six.ensure_str(_encode_target(url)) else: url = six.ensure_str(parsed_url.url) conn = None # Track whether `conn` needs to be released before # returning/raising/recursing. Update this variable if necessary, and # leave `release_conn` constant throughout the function. That way, if # the function recurses, the original value of `release_conn` will be # passed down into the recursive call, and its value will be respected. # # See issue #651 [1] for details. # # [1] release_this_conn = release_conn http_tunnel_required = connection_requires_http_tunnel( self.proxy, self.proxy_config, destination_scheme ) # Merge the proxy headers. Only done when not using HTTP CONNECT. We # have to copy the headers dict so we can safely change it without those # changes being reflected in anyone else's copy. if not http_tunnel_required: headers = headers.copy() headers.update(self.proxy_headers) # Must keep the exception bound to a separate variable or else Python 3 # complains about UnboundLocalError. err = None # Keep track of whether we cleanly exited the except block. This # ensures we do proper cleanup in finally. clean_exit = False # Rewind body position, if needed. Record current position # for future rewinds in the event of a redirect/retry. body_pos = set_file_position(body, body_pos) try: # Request a connection from the queue. timeout_obj = self._get_timeout(timeout) conn = self._get_conn(timeout=pool_timeout) conn.timeout = timeout_obj.connect_timeout is_new_proxy_conn = self.proxy is not None and not getattr( conn, "sock", None ) if is_new_proxy_conn and http_tunnel_required: self._prepare_proxy(conn) # Make the request on the httplib connection object. > httplib_response = self._make_request( conn, method, url, timeout=timeout_obj, body=body, headers=headers, chunked=chunked, ) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:715: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:469: in _make_request self._raise_timeout(err=e, url=url, timeout_value=read_timeout) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = err = TimeoutError('timed out'), url = '/echo?a=b', 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: HTTPConnectionPool(host='127.0.0.1', port=35073): Read timed out. (read timeout=0.01) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:358: ReadTimeoutError During handling of the above exception, another exception occurred: self = def test_cross_host_redirect(self): with PoolManager() as http: cross_host_location = "%s/echo?a=b" % self.base_url_alt with pytest.raises(MaxRetryError): http.request( "GET", "%s/redirect" % self.base_url, fields={"target": cross_host_location}, timeout=LONG_TIMEOUT, retries=0, ) > r = http.request( "GET", "%s/redirect" % self.base_url, fields={"target": "%s/echo?a=b" % self.base_url_alt}, timeout=LONG_TIMEOUT, retries=1, ) test/with_dummyserver/test_poolmanager.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/request.py:77: in request return self.request_encode_url( test_dir/usr/lib/python3.12/site-packages/urllib3/request.py:99: in request_encode_url return self.urlopen(method, url, **extra_kw) test_dir/usr/lib/python3.12/site-packages/urllib3/poolmanager.py:421: in urlopen return self.urlopen(method, redirect_location, **kw) test_dir/usr/lib/python3.12/site-packages/urllib3/poolmanager.py:376: in urlopen response = conn.urlopen(method, u.request_uri, **kw) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:801: in urlopen retries = retries.increment( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Retry(total=0, connect=None, read=None, redirect=None, status=None) method = 'GET', url = '/echo?a=b', response = None error = ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=35073): Read timed out. (read timeout=0.01)") _pool = _stacktrace = def increment( self, method=None, url=None, response=None, error=None, _pool=None, _stacktrace=None, ): """Return a new Retry object with incremented retry counters. :param response: A response object, or None, if the server did not return a response. :type response: :class:`~urllib3.response.HTTPResponse` :param Exception error: An error encountered during the request, or None if the response was received successfully. :return: A new ``Retry`` object. """ if self.total is False and error: # Disabled, indicate to re-raise the error. raise six.reraise(type(error), error, _stacktrace) total = self.total if total is not None: total -= 1 connect = self.connect read = self.read redirect = self.redirect status_count = self.status other = self.other cause = "unknown" status = None redirect_location = None if error and self._is_connection_error(error): # Connect retry? if connect is False: raise six.reraise(type(error), error, _stacktrace) elif connect is not None: connect -= 1 elif error and self._is_read_error(error): # Read retry? if read is False or not self._is_method_retryable(method): raise six.reraise(type(error), error, _stacktrace) elif read is not None: read -= 1 elif error: # Other retry? if other is not None: other -= 1 elif response and response.get_redirect_location(): # Redirect retry? if redirect is not None: redirect -= 1 cause = "too many redirects" redirect_location = response.get_redirect_location() status = response.status else: # Incrementing because of a server error like a 500 in # status_forcelist and the given method is in the allowed_methods cause = ResponseError.GENERIC_ERROR if response and response.status: if status_count is not None: status_count -= 1 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) status = response.status history = self.history + ( RequestHistory(method, url, error, status, redirect_location), ) new_retry = self.new( total=total, connect=connect, read=read, redirect=redirect, status=status_count, other=other, history=history, ) if new_retry.is_exhausted(): > raise MaxRetryError(_pool, url, error or ResponseError(cause)) E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=35073): Max retries exceeded with url: /echo?a=b (Caused by ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=35073): Read timed out. (read timeout=0.01)")) test_dir/usr/lib/python3.12/site-packages/urllib3/util/retry.py:594: MaxRetryError ----------------------------- Captured stdout call ----------------------------- Retrying (Retry(total=0, connect=None, read=None, redirect=0, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35073): Read timed out. (read timeout=0.01)")': /redirect?target=http%3A%2F%2F127.0.0.1%3A35073%2Fecho%3Fa%3Db Retrying (Retry(total=0, connect=None, read=None, redirect=0, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35073): Read timed out. (read timeout=0.01)")': /redirect?target=http%3A%2F%2F127.0.0.1%3A35073%2Fecho%3Fa%3Db ------------------------------ Captured log call ------------------------------- WARNING urllib3.connectionpool:connectionpool.py:826 Retrying (Retry(total=0, connect=None, read=None, redirect=0, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35073): Read timed out. (read timeout=0.01)")': /redirect?target=http%3A%2F%2F127.0.0.1%3A35073%2Fecho%3Fa%3Db INFO urllib3.poolmanager:poolmanager.py:418 Redirecting http://localhost:35073/redirect?target=http%3A%2F%2F127.0.0.1%3A35073%2Fecho%3Fa%3Db -> http://127.0.0.1:35073/echo?a=b ------------------------------ Captured log call ------------------------------- INFO urllib3.poolmanager:poolmanager.py:418 Redirecting http://localhost:35073/redirect?target=http%3A%2F%2F127.0.0.1%3A35073%2Fecho%3Fa%3Db -> http://127.0.0.1:35073/echo?a=b _____________ TestSocketClosing.test_timeout_errors_cause_retries ______________ 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), read_timeout = 0.01 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.resolve_default_timeout(timeout_obj.connect_timeout) # Trigger any extra validation we need to do. try: self._validate_conn(conn) except (SocketTimeout, BaseSSLError) as e: # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout. self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) raise # conn.request() calls http.client.*.request, not the method in # urllib3.request. It also calls makefile (recv) on the socket. try: if chunked: conn.request_chunked(method, url, **httplib_request_kw) else: conn.request(method, url, **httplib_request_kw) # We are swallowing BrokenPipeError (errno.EPIPE) since the server is # legitimately able to close the connection after sending a valid response. # With this behaviour, the received response is still readable. except BrokenPipeError: # Python 3 pass except IOError as e: # Python 2 and macOS/Linux # EPIPE and ESHUTDOWN are BrokenPipeError on Python 2, and EPROTOTYPE is needed on macOS # https://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ if e.errno not in { errno.EPIPE, errno.ESHUTDOWN, errno.EPROTOTYPE, }: raise # Reset the timeout for the recv() on the socket read_timeout = timeout_obj.read_timeout # App Engine doesn't have a sock attr if getattr(conn, "sock", None): # In Python 3 socket.py will catch EAGAIN and return None when you # try and read into the file pointer created by http.client, which # instead raises a BadStatusLine exception. Instead of catching # the exception and assuming all BadStatusLine exceptions are read # timeouts, check for a zero timeout before making the request. if read_timeout == 0: raise ReadTimeoutError( self, url, "Read timed out. (read timeout=%s)" % read_timeout ) if read_timeout is Timeout.DEFAULT_TIMEOUT: conn.sock.settimeout(socket.getdefaulttimeout()) else: # None or a value conn.sock.settimeout(read_timeout) # Receive the response from the server try: try: # Python 2.7, use buffering of HTTP responses httplib_response = conn.getresponse(buffering=True) except TypeError: # Python 3 try: httplib_response = conn.getresponse() except BaseException as e: # Remove the TypeError from the exception chain in # Python 3 (including for exceptions like SystemExit). # Otherwise it looks like a bug in the code. > six.raise_from(e, None) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:467: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:462: in _make_request httplib_response = conn.getresponse() /usr/lib/python3.12/http/client.py:1428: in getresponse response.begin() /usr/lib/python3.12/http/client.py:331: in begin version, status, reason = self._read_status() /usr/lib/python3.12/http/client.py:292: in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , b = def readinto(self, b): """Read up to len(b) bytes into the writable buffer *b* and return the number of bytes read. If the socket is non-blocking and no bytes are available, None is returned. If *b* is non-empty, a 0 return value indicates that the connection was shutdown at the other end. """ self._checkClosed() self._checkReadable() if self._timeout_occurred: raise OSError("cannot read from timed out object") while True: try: > return self._sock.recv_into(b) E TimeoutError: timed out /usr/lib/python3.12/socket.py:708: TimeoutError During handling of the above exception, another exception occurred: self = method = 'GET', url = '/', body = None, headers = {} retries = Retry(total=0, connect=None, read=None, redirect=None, status=None) redirect = True, assert_same_host = True timeout = , pool_timeout = None release_conn = True, chunked = False, body_pos = None response_kw = {'request_url': '/'} parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/', query=None, fragment=None) destination_scheme = None, conn = None, release_this_conn = True http_tunnel_required = False, err = None, clean_exit = False def urlopen( self, method, url, body=None, headers=None, retries=None, redirect=True, assert_same_host=True, timeout=_Default, pool_timeout=None, release_conn=None, chunked=False, body_pos=None, **response_kw ): """ Get a connection from the pool and perform an HTTP request. This is the lowest level call for making a request, so you'll need to specify all the raw details. .. note:: More commonly, it's appropriate to use a convenience method provided by :class:`.RequestMethods`, such as :meth:`request`. .. note:: `release_conn` will only behave as expected if `preload_content=False` because we want to make `preload_content=False` the default behaviour someday soon without breaking backwards compatibility. :param method: HTTP request method (such as GET, POST, PUT, etc.) :param url: The URL to perform the request on. :param body: Data to send in the request body, either :class:`str`, :class:`bytes`, an iterable of :class:`str`/:class:`bytes`, or a file-like object. :param headers: Dictionary of custom headers to send, such as User-Agent, If-None-Match, etc. If None, pool headers are used. If provided, these headers completely replace any pool-specific headers. :param retries: Configure the number of retries to allow before raising a :class:`~urllib3.exceptions.MaxRetryError` exception. Pass ``None`` to retry until you receive a response. Pass a :class:`~urllib3.util.retry.Retry` object for fine-grained control over different types of retries. Pass an integer number to retry connection errors that many times, but no other types of errors. Pass zero to never retry. If ``False``, then retries are disabled and any exception is raised immediately. Also, instead of raising a MaxRetryError on redirects, the redirect response will be returned. :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. :param redirect: If True, automatically handle redirects (status codes 301, 302, 303, 307, 308). Each redirect counts as a retry. Disabling retries will disable redirect, too. :param assert_same_host: If ``True``, will make sure that the host of the pool requests is consistent else will raise HostChangedError. When ``False``, you can use the pool on an HTTP proxy and request foreign hosts. :param timeout: If specified, overrides the default timeout for this one request. It may be a float (in seconds) or an instance of :class:`urllib3.util.Timeout`. :param pool_timeout: If set and the pool is set to block=True, then this method will block for ``pool_timeout`` seconds and raise EmptyPoolError if no connection is available within the time period. :param release_conn: If False, then the urlopen call will not release the connection back into the pool once a response is received (but will release if you read the entire contents of the response such as when `preload_content=True`). This is useful if you're not preloading the response's content immediately. You will need to call ``r.release_conn()`` on the response ``r`` to return the connection back into the pool. If None, it takes the value of ``response_kw.get('preload_content', True)``. :param chunked: If True, urllib3 will send the body using chunked transfer encoding. Otherwise, urllib3 will send the body using the standard content-length form. Defaults to False. :param int body_pos: Position to seek to in file-like body in the event of a retry or redirect. Typically this won't need to be set because urllib3 will auto-populate the value when needed. :param \\**response_kw: Additional parameters are passed to :meth:`urllib3.response.HTTPResponse.from_httplib` """ parsed_url = parse_url(url) destination_scheme = parsed_url.scheme if headers is None: headers = self.headers if not isinstance(retries, Retry): retries = Retry.from_int(retries, redirect=redirect, default=self.retries) if release_conn is None: release_conn = response_kw.get("preload_content", True) # Check host if assert_same_host and not self.is_same_host(url): raise HostChangedError(self, url, retries) # Ensure that the URL we're connecting to is properly encoded if url.startswith("/"): url = six.ensure_str(_encode_target(url)) else: url = six.ensure_str(parsed_url.url) conn = None # Track whether `conn` needs to be released before # returning/raising/recursing. Update this variable if necessary, and # leave `release_conn` constant throughout the function. That way, if # the function recurses, the original value of `release_conn` will be # passed down into the recursive call, and its value will be respected. # # See issue #651 [1] for details. # # [1] release_this_conn = release_conn http_tunnel_required = connection_requires_http_tunnel( self.proxy, self.proxy_config, destination_scheme ) # Merge the proxy headers. Only done when not using HTTP CONNECT. We # have to copy the headers dict so we can safely change it without those # changes being reflected in anyone else's copy. if not http_tunnel_required: headers = headers.copy() headers.update(self.proxy_headers) # Must keep the exception bound to a separate variable or else Python 3 # complains about UnboundLocalError. err = None # Keep track of whether we cleanly exited the except block. This # ensures we do proper cleanup in finally. clean_exit = False # Rewind body position, if needed. Record current position # for future rewinds in the event of a redirect/retry. body_pos = set_file_position(body, body_pos) try: # Request a connection from the queue. timeout_obj = self._get_timeout(timeout) conn = self._get_conn(timeout=pool_timeout) conn.timeout = timeout_obj.connect_timeout is_new_proxy_conn = self.proxy is not None and not getattr( conn, "sock", None ) if is_new_proxy_conn and http_tunnel_required: self._prepare_proxy(conn) # Make the request on the httplib connection object. > httplib_response = self._make_request( conn, method, url, timeout=timeout_obj, body=body, headers=headers, chunked=chunked, ) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:715: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:469: in _make_request self._raise_timeout(err=e, url=url, timeout_value=read_timeout) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = err = TimeoutError('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: HTTPConnectionPool(host='localhost', port=35681): Read timed out. (read timeout=0.01) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:358: ReadTimeoutError During handling of the above exception, another exception occurred: self = def test_timeout_errors_cause_retries(self): def socket_handler(listener): sock_timeout = listener.accept()[0] # Wait for a second request before closing the first socket. sock = listener.accept()[0] sock_timeout.close() # Second request. buf = b"" while not buf.endswith(b"\r\n\r\n"): buf += sock.recv(65536) # Now respond immediately. body = "Response 2" sock.send( ( "HTTP/1.1 200 OK\r\n" "Content-Type: text/plain\r\n" "Content-Length: %d\r\n" "\r\n" "%s" % (len(body), body) ).encode("utf-8") ) sock.close() # In situations where the main thread throws an exception, the server # thread can hang on an accept() call. This ensures everything times # out within 1 second. This should be long enough for any socket # operations in the test suite to complete default_timeout = socket.getdefaulttimeout() socket.setdefaulttimeout(1) try: self._start_server(socket_handler) t = Timeout(connect=LONG_TIMEOUT, read=LONG_TIMEOUT) with HTTPConnectionPool(self.host, self.port, timeout=t) as pool: > response = pool.request("GET", "/", retries=1) test/with_dummyserver/test_socketlevel.py:531: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.12/site-packages/urllib3/request.py:77: in request return self.request_encode_url( test_dir/usr/lib/python3.12/site-packages/urllib3/request.py:99: in request_encode_url return self.urlopen(method, url, **extra_kw) test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:829: in urlopen return self.urlopen( test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:801: in urlopen retries = retries.increment( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Retry(total=0, connect=None, read=None, redirect=None, status=None) method = 'GET', url = '/', response = None error = ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35681): Read timed out. (read timeout=0.01)") _pool = _stacktrace = def increment( self, method=None, url=None, response=None, error=None, _pool=None, _stacktrace=None, ): """Return a new Retry object with incremented retry counters. :param response: A response object, or None, if the server did not return a response. :type response: :class:`~urllib3.response.HTTPResponse` :param Exception error: An error encountered during the request, or None if the response was received successfully. :return: A new ``Retry`` object. """ if self.total is False and error: # Disabled, indicate to re-raise the error. raise six.reraise(type(error), error, _stacktrace) total = self.total if total is not None: total -= 1 connect = self.connect read = self.read redirect = self.redirect status_count = self.status other = self.other cause = "unknown" status = None redirect_location = None if error and self._is_connection_error(error): # Connect retry? if connect is False: raise six.reraise(type(error), error, _stacktrace) elif connect is not None: connect -= 1 elif error and self._is_read_error(error): # Read retry? if read is False or not self._is_method_retryable(method): raise six.reraise(type(error), error, _stacktrace) elif read is not None: read -= 1 elif error: # Other retry? if other is not None: other -= 1 elif response and response.get_redirect_location(): # Redirect retry? if redirect is not None: redirect -= 1 cause = "too many redirects" redirect_location = response.get_redirect_location() status = response.status else: # Incrementing because of a server error like a 500 in # status_forcelist and the given method is in the allowed_methods cause = ResponseError.GENERIC_ERROR if response and response.status: if status_count is not None: status_count -= 1 cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) status = response.status history = self.history + ( RequestHistory(method, url, error, status, redirect_location), ) new_retry = self.new( total=total, connect=connect, read=read, redirect=redirect, status=status_count, other=other, history=history, ) if new_retry.is_exhausted(): > raise MaxRetryError(_pool, url, error or ResponseError(cause)) E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=35681): Max retries exceeded with url: / (Caused by ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35681): Read timed out. (read timeout=0.01)")) test_dir/usr/lib/python3.12/site-packages/urllib3/util/retry.py:594: MaxRetryError ----------------------------- Captured stdout call ----------------------------- Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=40321): Read timed out. (read timeout=0.01)")': / Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=40321): Read timed out. (read timeout=0.01)")': / ------------------------------ Captured log call ------------------------------- WARNING urllib3.connectionpool:connectionpool.py:826 Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=40321): Read timed out. (read timeout=0.01)")': / ----------------------------- Captured stdout call ----------------------------- Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35681): Read timed out. (read timeout=0.01)")': / Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35681): Read timed out. (read timeout=0.01)")': / ------------------------------ Captured log call ------------------------------- WARNING urllib3.connectionpool:connectionpool.py:826 Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35681): Read timed out. (read timeout=0.01)")': / ______ TestSocketClosing.test_closing_response_actually_closes_connection ______ self = def test_closing_response_actually_closes_connection(self): done_closing = Event() complete = Event() def socket_handler(listener): sock = listener.accept()[0] buf = b"" while not buf.endswith(b"\r\n\r\n"): buf = sock.recv(65536) sock.send( ( "HTTP/1.1 200 OK\r\n" "Content-Type: text/plain\r\n" "Content-Length: 0\r\n" "\r\n" ).encode("utf-8") ) # Wait for the socket to close. done_closing.wait(timeout=LONG_TIMEOUT) # Look for the empty string to show that the connection got closed. # Don't get stuck in a timeout. sock.settimeout(LONG_TIMEOUT) new_data = sock.recv(65536) assert not new_data sock.close() complete.set() self._start_server(socket_handler) with HTTPConnectionPool(self.host, self.port) as pool: response = pool.request("GET", "/", retries=0, preload_content=False) assert response.status == 200 response.close() done_closing.set() # wait until the socket in our pool gets closed successful = complete.wait(timeout=LONG_TIMEOUT) > assert successful, "Timed out waiting for connection close" E AssertionError: Timed out waiting for connection close E assert False test/with_dummyserver/test_socketlevel.py:861: AssertionError =============================== warnings summary =============================== test/__init__.py:25 /build/python-urllib3/src/urllib3-1.26.19/test/__init__.py:25: DeprecationWarning: 'urllib3.contrib.pyopenssl' module is deprecated and will be removed in a future release of urllib3 2.x. Read more in this issue: https://github.com/urllib3/urllib3/issues/2680 import urllib3.contrib.pyopenssl as pyopenssl test/conftest.py:210 /build/python-urllib3/src/urllib3-1.26.19/test/conftest.py:210: PytestDeprecationWarning: @pytest.yield_fixture is deprecated. Use @pytest.fixture instead; they are the same. @pytest.yield_fixture ../../../../usr/lib/python3.12/site-packages/gcp_devrel/testing/appengine.py:120 /usr/lib/python3.12/site-packages/gcp_devrel/testing/appengine.py:120: PytestDeprecationWarning: @pytest.yield_fixture is deprecated. Use @pytest.fixture instead; they are the same. @pytest.yield_fixture ../../../../usr/lib/python3.12/site-packages/pytest_freezegun.py:17: 3992 warnings test/test_retry.py: 54 warnings test/test_retry_deprecated.py: 54 warnings /usr/lib/python3.12/site-packages/pytest_freezegun.py:17: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead. if LooseVersion(pytest.__version__) < LooseVersion('3.6.0'): test/test_ssl.py::test_context_sni_with_ip_address[False-www.python.org-False] /build/python-urllib3/src/urllib3-1.26.19/test_dir/usr/lib/python3.12/site-packages/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::TlsInTlsTestCase::test_wrong_sni_hint /usr/lib/python3.12/site-packages/_pytest/threadexception.py:73: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-8 Traceback (most recent call last): File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 134, in run self.server = self._start_server() ^^^^^^^^^^^^^^^^^^^^ File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.19/test/test_ssltransport.py", line 342, in socket_handler with cls.server_context.wrap_socket(sock, server_side=True) as ssock: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ssl.py", line 455, in wrap_socket return self.sslsocket_class._create( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/ssl.py", line 1042, in _create self.do_handshake() File "/usr/lib/python3.12/ssl.py", line 1320, in do_handshake self._sslobj.do_handshake() ssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000) warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/contrib/test_pyopenssl.py::TestHTTPS::test_simple /usr/lib/python3.12/site-packages/tornado/ioloop.py:274: DeprecationWarning: There is no current event loop loop = asyncio.get_event_loop() test/contrib/test_pyopenssl.py: 10 warnings test/with_dummyserver/test_https.py: 9 warnings test/with_dummyserver/test_no_ssl.py: 1 warning test/with_dummyserver/test_proxy_poolmanager.py: 9 warnings /build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py:157: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ctx = ssl.SSLContext(ssl_version) 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 /build/python-urllib3/src/urllib3-1.26.19/test_dir/usr/lib/python3.12/site-packages/urllib3/connectionpool.py:1063: 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.19/test/__init__.py:70: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated ctx = ctx_cls(protocol=ssl_.PROTOCOL_TLS) 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.19/test_dir/usr/lib/python3.12/site-packages/urllib3/connection.py:463: 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::TestHTTPS_NoSAN::test_common_name_without_san_with_different_common_name test/with_dummyserver/test_https.py::TestHTTPS_NoSAN::test_common_name_without_san_with_different_common_name /build/python-urllib3/src/urllib3-1.26.19/test_dir/usr/lib/python3.12/site-packages/urllib3/connection.py:463: SubjectAltNameWarning: Certificate for localhost 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::TestHTTPS_TLSv1::test_simple test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_simple /build/python-urllib3/src/urllib3-1.26.19/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.19/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.19/dummyserver/server.py:157: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated ctx = ssl.SSLContext(ssl_version) test/contrib/test_pyopenssl.py::TestSSL::test_ssl_load_default_certs_when_empty /usr/lib/python3.12/site-packages/_pytest/threadexception.py:73: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-51 Traceback (most recent call last): File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 134, in run self.server = self._start_server() ^^^^^^^^^^^^^^^^^^^^ File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.19/test/with_dummyserver/test_socketlevel.py", line 1376, in socket_handler ssl_sock = ssl.wrap_socket( ^^^^^^^^^^^^^^^ AttributeError: module 'ssl' has no attribute 'wrap_socket' warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/contrib/test_pyopenssl.py::TestSSL::test_ssl_dont_load_default_certs_when_given /usr/lib/python3.12/site-packages/_pytest/threadexception.py:73: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-55 Traceback (most recent call last): File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 134, in run self.server = self._start_server() ^^^^^^^^^^^^^^^^^^^^ File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.19/test/with_dummyserver/test_socketlevel.py", line 1413, in socket_handler ssl_sock = ssl.wrap_socket( ^^^^^^^^^^^^^^^ AttributeError: module 'ssl' has no attribute 'wrap_socket' warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/contrib/test_socks.py: 17 warnings /build/python-urllib3/src/urllib3-1.26.19/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.19/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.19/test/with_dummyserver/test_connectionpool.py:1175: 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_connectionpool.py::TestRetryAfter::test_redirect_after test/with_dummyserver/test_connectionpool.py::TestRetryAfter::test_redirect_after /build/python-urllib3/src/urllib3-1.26.19/dummyserver/handlers.py:330: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). httputil.format_timestamp(datetime.utcfromtimestamp(float(date))) test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_2::test_set_ssl_version_to_tls_version /build/python-urllib3/src/urllib3-1.26.19/test_dir/usr/lib/python3.12/site-packages/urllib3/util/ssl_.py:290: DeprecationWarning: ssl.PROTOCOL_TLSv1_2 is deprecated context = SSLContext(ssl_version) test/with_dummyserver/test_socketlevel.py::TestClientCerts::test_load_keyfile_with_invalid_password /build/python-urllib3/src/urllib3-1.26.19/test/with_dummyserver/test_socketlevel.py:356: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated context = ssl_.SSLContext(ssl_.PROTOCOL_SSLv23) test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_load_default_certs_when_empty /usr/lib/python3.12/site-packages/_pytest/threadexception.py:73: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-145 Traceback (most recent call last): File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 134, in run self.server = self._start_server() ^^^^^^^^^^^^^^^^^^^^ File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.19/test/with_dummyserver/test_socketlevel.py", line 1376, in socket_handler ssl_sock = ssl.wrap_socket( ^^^^^^^^^^^^^^^ AttributeError: module 'ssl' has no attribute 'wrap_socket' warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_dont_load_default_certs_when_given /usr/lib/python3.12/site-packages/_pytest/threadexception.py:73: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-149 Traceback (most recent call last): File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner self.run() File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 134, in run self.server = self._start_server() ^^^^^^^^^^^^^^^^^^^^ File "/build/python-urllib3/src/urllib3-1.26.19/dummyserver/server.py", line 130, in _start_server self.socket_handler(sock) File "/build/python-urllib3/src/urllib3-1.26.19/test/with_dummyserver/test_socketlevel.py", line 1413, in socket_handler ssl_sock = ssl.wrap_socket( ^^^^^^^^^^^^^^^ AttributeError: module 'ssl' has no attribute 'wrap_socket' warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg)) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-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 failed (1 runs remaining out of 2). HTTPConnectionPool(host='localhost', port=43033): Read timed out. (read timeout=0.01) [, , , , , , , , , , , , , , , , , , , , , , , ] 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_socket_timeout_updated_on_reuse_constructor[1-expect_settimeout_calls0] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_constructor[None-expect_settimeout_calls1] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_constructor[timeout2-expect_settimeout_calls2] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_constructor[timeout3-expect_settimeout_calls3] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_constructor[timeout4-expect_settimeout_calls4] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_parameter[1-expect_settimeout_calls0] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_parameter[None-expect_settimeout_calls1] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_parameter[timeout2-expect_settimeout_calls2] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_parameter[timeout3-expect_settimeout_calls3] passed 1 out of the required 1 times. Success! test_socket_timeout_updated_on_reuse_parameter[timeout4-expect_settimeout_calls4] 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_303_redirect_makes_request_lose_body 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_wrap_socket_failure_resource_leak 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_wrap_socket_failure_resource_leak 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_wrap_socket_failure_resource_leak 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_common_name_without_san_with_different_common_name 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 failed (1 runs remaining out of 2). HTTPConnectionPool(host='127.0.0.1', port=35073): Max retries exceeded with url: /echo?a=b (Caused by ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=35073): Read timed out. (read timeout=0.01)")) [, , , , , , , , , , , , , , , , , , , , , ] test_cross_host_redirect failed; it passed 0 out of the required 1 times. HTTPConnectionPool(host='127.0.0.1', port=35073): Max retries exceeded with url: /echo?a=b (Caused by ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=35073): Read timed out. (read timeout=0.01)")) [, , , , , , , , , , , , , , , , , , , , , ] 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_303_redirect_makes_request_lose_body 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_server_hostname 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_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_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_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 failed (1 runs remaining out of 2). HTTPConnectionPool(host='localhost', port=40321): Max retries exceeded with url: / (Caused by ReadTimeoutError("HTTPConnectionPool(host='localhost', port=40321): Read timed out. (read timeout=0.01)")) [, , , , , , , , , , , , , , , , , , , , ] test_timeout_errors_cause_retries failed; it passed 0 out of the required 1 times. HTTPConnectionPool(host='localhost', port=35681): Max retries exceeded with url: / (Caused by ReadTimeoutError("HTTPConnectionPool(host='localhost', port=35681): Read timed out. (read timeout=0.01)")) [, , , , , , , , , , , , , , , , , , , , ] 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 failed (1 runs remaining out of 2). HTTPConnectionPool(host='localhost', port=42185): Max retries exceeded with url: / (Caused by ReadTimeoutError("HTTPConnectionPool(host='localhost', port=42185): Read timed out. (read timeout=0.01)")) [, , , , , , , , , , , , , , , , , ] test_connection_closed_on_read_timeout_preload_false passed 1 out of the required 1 times. Success! test_closing_response_actually_closes_connection failed (1 runs remaining out of 2). Timed out waiting for connection close assert False [, , , , , , , , , , , , , , , ] test_closing_response_actually_closes_connection failed; it passed 0 out of the required 1 times. Timed out waiting for connection close assert False [, , , , , , , , , , , , , , , ] 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_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_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 failed (1 runs remaining out of 2). HTTPConnectionPool(host='localhost', port=42469): Read timed out. (read timeout=0.01) [, , , , , , , , , , , , , , , , , , , , , , , ] 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/contrib/test_pyopenssl.py::TestSocketClosing::test_timeout_errors_cause_retries FAILED test/contrib/test_pyopenssl.py::TestSocketClosing::test_connection_closed_on_read_timeout_preload_false FAILED test/contrib/test_pyopenssl.py::TestSocketClosing::test_closing_response_actually_closes_connection FAILED test/with_dummyserver/test_poolmanager.py::TestPoolManager::test_cross_host_redirect FAILED test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_timeout_errors_cause_retries FAILED test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_closing_response_actually_closes_connection = 6 failed, 1538 passed, 417 skipped, 35 deselected, 4198 warnings in 1845.99s (0:30:45) = ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/root3/build [?25h[?25hreceiving incremental file list python-urllib3-1.26.19-1-riscv64-build.log python-urllib3-1.26.19-1-riscv64-check.log python-urllib3-1.26.19-1-riscv64-prepare.log sent 81 bytes received 36,027 bytes 72,216.00 bytes/sec total size is 437,953 speedup is 12.13