From e1774fd8368eff38d3d99326926b4e899d1d5a0d Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Mon, 2 Aug 2021 13:37:44 +0000 Subject: [PATCH 01/10] feat Python 3.10 --- .github/workflows/ci.yml | 7 +++++++ CHANGES/5927.feature | 1 + requirements/dev.txt | 4 ++-- requirements/lint.txt | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 CHANGES/5927.feature diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 037bcbf0898..0d4079a1610 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -93,8 +93,15 @@ jobs: # - pyver: pypy3 # no-extensions: 'Y' # os: ubuntu + experimental: [false] + include: + - os: Ubuntu + pyver: "3.10.0-alpha - 3.10.0" + experimental: true + no-extensions: 'Y' fail-fast: true runs-on: ${{ matrix.os }}-latest + continue-on-error: ${{ matrix.experimental }} timeout-minutes: 15 steps: - name: Checkout diff --git a/CHANGES/5927.feature b/CHANGES/5927.feature new file mode 100644 index 00000000000..84cb30245f9 --- /dev/null +++ b/CHANGES/5927.feature @@ -0,0 +1 @@ +Add support for Python 3.10 in Github Action and fix the warning. diff --git a/requirements/dev.txt b/requirements/dev.txt index a2e54a04764..9452157c4b9 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -192,7 +192,7 @@ pyparsing==2.4.7 # via # -r requirements/lint.txt # packaging -pytest==6.2.2 +pytest==6.2.4 # via # -r requirements/lint.txt # -r requirements/test.txt @@ -299,7 +299,7 @@ yarl==1.6.3 # via -r requirements/base.txt # The following packages are considered to be unsafe in a requirements file: -setuptools==51.3.1 +setuptools==57.4.0 # via # blockdiag # gunicorn diff --git a/requirements/lint.txt b/requirements/lint.txt index 5a9e0d5e6ad..d8acfe3a9d1 100644 --- a/requirements/lint.txt +++ b/requirements/lint.txt @@ -62,13 +62,13 @@ pyflakes==2.3.0 # flake8-pyi pyparsing==2.4.7 # via packaging -pytest==6.2.2 +pytest==6.2.4 # via -r requirements/lint.in pyyaml==5.4.1 # via pre-commit regex==2020.11.13 # via black -six==1.15.0 +six==1.16.0 # via virtualenv toml==0.10.2 # via From 6dbdf64f0820cae0a0eac7c00be05f1e04581eaa Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Thu, 23 Sep 2021 14:38:34 +0000 Subject: [PATCH 02/10] Fix warning --- aiohttp/connector.py | 4 +++- aiohttp/test_utils.py | 6 ++++-- tests/conftest.py | 2 +- tests/test_client_functional.py | 2 +- tests/test_connector.py | 14 +++++++++----- tests/test_loop.py | 6 +++--- tests/test_worker.py | 6 +++--- 7 files changed, 24 insertions(+), 16 deletions(-) diff --git a/aiohttp/connector.py b/aiohttp/connector.py index c1b0f89ce16..f1cae659f5e 100644 --- a/aiohttp/connector.py +++ b/aiohttp/connector.py @@ -876,9 +876,11 @@ def _make_ssl_context(verified: bool) -> SSLContext: if verified: return ssl.create_default_context() else: - sslcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + sslcontext = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) sslcontext.options |= ssl.OP_NO_SSLv2 sslcontext.options |= ssl.OP_NO_SSLv3 + sslcontext.check_hostname = False + sslcontext.verify_mode = ssl.CERT_NONE try: sslcontext.options |= ssl.OP_NO_COMPRESSION except AttributeError as attr_err: diff --git a/aiohttp/test_utils.py b/aiohttp/test_utils.py index 36a860b0171..48c276791f8 100644 --- a/aiohttp/test_utils.py +++ b/aiohttp/test_utils.py @@ -428,8 +428,10 @@ def get_app(self) -> Application: raise RuntimeError("Did you forget to define get_application()?") def setUp(self) -> None: - if PY_38: - self.loop = asyncio.get_event_loop() + try: + self.loop = asyncio.get_running_loop() + except RuntimeError: + self.loop = asyncio.get_event_loop_policy().get_event_loop() self.loop.run_until_complete(self.setUpAsync()) diff --git a/tests/conftest.py b/tests/conftest.py index eda5c60b727..0922d3b21f3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -55,7 +55,7 @@ def tls_certificate(tls_certificate_authority: Any) -> Any: @pytest.fixture def ssl_ctx(tls_certificate: Any) -> ssl.SSLContext: - ssl_ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + ssl_ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) tls_certificate.configure_cert(ssl_ctx) return ssl_ctx diff --git a/tests/test_client_functional.py b/tests/test_client_functional.py index b3a01957bf7..058d1594ec3 100644 --- a/tests/test_client_functional.py +++ b/tests/test_client_functional.py @@ -2348,7 +2348,7 @@ def create(url: URL, srv: Any): cert = tls_certificate_authority.issue_cert( url.host, "localhost", "127.0.0.1" ) - ssl_ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + ssl_ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) cert.configure_cert(ssl_ctx) kwargs["ssl"] = ssl_ctx return aiohttp_server(app, **kwargs) diff --git a/tests/test_connector.py b/tests/test_connector.py index 12ab38cb5be..fa8d6f6ff88 100644 --- a/tests/test_connector.py +++ b/tests/test_connector.py @@ -81,7 +81,11 @@ async def go(app): def create_mocked_conn(conn_closing_result: Optional[Any] = None, **kwargs: Any): assert "loop" not in kwargs - loop = asyncio.get_event_loop() + try: + loop = asyncio.get_running_loop() + except RuntimeError: + loop = asyncio.get_event_loop_policy().get_event_loop() + proto = mock.Mock(**kwargs) proto.closed = loop.create_future() proto.closed.set_result(conn_closing_result) @@ -1267,7 +1271,7 @@ async def test___get_ssl_context1(loop: Any) -> None: async def test___get_ssl_context2(loop: Any) -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) conn = aiohttp.TCPConnector() req = mock.Mock() req.is_ssl.return_value = True @@ -1276,7 +1280,7 @@ async def test___get_ssl_context2(loop: Any) -> None: async def test___get_ssl_context3(loop: Any) -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) conn = aiohttp.TCPConnector(ssl=ctx) req = mock.Mock() req.is_ssl.return_value = True @@ -1285,7 +1289,7 @@ async def test___get_ssl_context3(loop: Any) -> None: async def test___get_ssl_context4(loop: Any) -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) conn = aiohttp.TCPConnector(ssl=ctx) req = mock.Mock() req.is_ssl.return_value = True @@ -1294,7 +1298,7 @@ async def test___get_ssl_context4(loop: Any) -> None: async def test___get_ssl_context5(loop: Any) -> None: - ctx = ssl.SSLContext() + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) conn = aiohttp.TCPConnector(ssl=ctx) req = mock.Mock() req.is_ssl.return_value = True diff --git a/tests/test_loop.py b/tests/test_loop.py index b72771a175a..f5a4c7774e1 100644 --- a/tests/test_loop.py +++ b/tests/test_loop.py @@ -39,11 +39,11 @@ async def test_on_startup_hook(self) -> None: self.assertTrue(self.on_startup_called) def test_default_loop(self) -> None: - self.assertIs(self.loop, asyncio.get_event_loop()) + self.assertIs(self.loop, asyncio.get_event_loop_policy().get_event_loop()) def test_default_loop(loop: Any) -> None: - assert asyncio.get_event_loop() is loop + assert asyncio.get_event_loop_policy().get_event_loop() is loop @pytest.mark.xfail(not PY_38, reason="ThreadedChildWatcher is only available in 3.8+") @@ -53,7 +53,7 @@ def test_setup_loop_non_main_thread() -> None: def target() -> None: try: with loop_context() as loop: - assert asyncio.get_event_loop() is loop + assert asyncio.get_event_loop_policy().get_event_loop() is loop loop.run_until_complete(test_subprocess_co(loop)) except Exception as exc: nonlocal child_exc diff --git a/tests/test_worker.py b/tests/test_worker.py index 317945f895a..5f973179228 100644 --- a/tests/test_worker.py +++ b/tests/test_worker.py @@ -250,7 +250,7 @@ def test__create_ssl_context_without_certs_and_ciphers( worker, tls_certificate_pem_path, ) -> None: - worker.cfg.ssl_version = ssl.PROTOCOL_SSLv23 + worker.cfg.ssl_version = ssl.PROTOCOL_TLS_CLIENT worker.cfg.cert_reqs = ssl.CERT_OPTIONAL worker.cfg.certfile = tls_certificate_pem_path worker.cfg.keyfile = tls_certificate_pem_path @@ -264,7 +264,7 @@ def test__create_ssl_context_with_ciphers( worker, tls_certificate_pem_path, ) -> None: - worker.cfg.ssl_version = ssl.PROTOCOL_SSLv23 + worker.cfg.ssl_version = ssl.PROTOCOL_TLS_CLIENT worker.cfg.cert_reqs = ssl.CERT_OPTIONAL worker.cfg.certfile = tls_certificate_pem_path worker.cfg.keyfile = tls_certificate_pem_path @@ -279,7 +279,7 @@ def test__create_ssl_context_with_ca_certs( tls_ca_certificate_pem_path, tls_certificate_pem_path, ) -> None: - worker.cfg.ssl_version = ssl.PROTOCOL_SSLv23 + worker.cfg.ssl_version = ssl.PROTOCOL_TLS_CLIENT worker.cfg.cert_reqs = ssl.CERT_OPTIONAL worker.cfg.certfile = tls_certificate_pem_path worker.cfg.keyfile = tls_certificate_pem_path From 539e6e32914c1d8c7eacffa68b761068c195e54e Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Wed, 6 Oct 2021 20:11:41 +0000 Subject: [PATCH 03/10] move 3.10 from experimental builds to release --- .github/workflows/ci.yml | 9 +-------- docs/third_party.rst | 2 +- requirements/dev.txt | 4 ++-- requirements/lint.in | 2 +- requirements/lint.txt | 2 +- requirements/test.txt | 2 +- 6 files changed, 7 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d4079a1610..cba1198ecb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,7 +76,7 @@ jobs: needs: lint strategy: matrix: - pyver: [3.7, 3.8, 3.9] + pyver: [3.7, 3.8, 3.9, '3.10'] no-extensions: ['', 'Y'] os: [ubuntu, macos, windows] exclude: @@ -93,15 +93,8 @@ jobs: # - pyver: pypy3 # no-extensions: 'Y' # os: ubuntu - experimental: [false] - include: - - os: Ubuntu - pyver: "3.10.0-alpha - 3.10.0" - experimental: true - no-extensions: 'Y' fail-fast: true runs-on: ${{ matrix.os }}-latest - continue-on-error: ${{ matrix.experimental }} timeout-minutes: 15 steps: - name: Checkout diff --git a/docs/third_party.rst b/docs/third_party.rst index 212543cca65..c180322dc15 100644 --- a/docs/third_party.rst +++ b/docs/third_party.rst @@ -290,6 +290,6 @@ ask to raise the status. - `aiohttp-retry `_ Wrapper for aiohttp client for retrying requests. Python 3.6+ required. - + - `aiohttp-socks `_ SOCKS proxy connector for aiohttp. diff --git a/requirements/dev.txt b/requirements/dev.txt index 9452157c4b9..3099a2fc581 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -192,7 +192,7 @@ pyparsing==2.4.7 # via # -r requirements/lint.txt # packaging -pytest==6.2.4 +pytest==6.2.5 # via # -r requirements/lint.txt # -r requirements/test.txt @@ -223,7 +223,7 @@ requests==2.25.1 # sphinx setuptools-git==1.2 # via -r requirements/test.txt -six==1.15.0 +six==1.16.0 # via # -r requirements/lint.txt # cryptography diff --git a/requirements/lint.in b/requirements/lint.in index e76aeff67f3..0405d406548 100644 --- a/requirements/lint.in +++ b/requirements/lint.in @@ -4,5 +4,5 @@ flake8-pyi==20.10.0 isort==5.9.3 mypy==0.910; implementation_name=="cpython" pre-commit==2.15.0 -pytest==6.2.2 +pytest==6.2.5 types-chardet==0.1.3 diff --git a/requirements/lint.txt b/requirements/lint.txt index d8acfe3a9d1..422328f395f 100644 --- a/requirements/lint.txt +++ b/requirements/lint.txt @@ -62,7 +62,7 @@ pyflakes==2.3.0 # flake8-pyi pyparsing==2.4.7 # via packaging -pytest==6.2.4 +pytest==6.2.5 # via -r requirements/lint.in pyyaml==5.4.1 # via pre-commit diff --git a/requirements/test.txt b/requirements/test.txt index a32135ef9b4..e31d9f52414 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -7,7 +7,7 @@ freezegun==1.1.0 mypy==0.910; implementation_name=="cpython" mypy-extensions==0.4.3; implementation_name=="cpython" proxy.py==2.3.1 -pytest==6.2.2 +pytest==6.2.5 pytest-cov==3.0.0 pytest-mock==3.6.1 re-assert==1.1.0 From a7db677128093f22b720170670a4d032b6ebda84 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Thu, 7 Oct 2021 00:29:05 +0200 Subject: [PATCH 04/10] Add clarity to the changelog fragment --- CHANGES/5927.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES/5927.feature b/CHANGES/5927.feature index 84cb30245f9..dac4f3e5eb9 100644 --- a/CHANGES/5927.feature +++ b/CHANGES/5927.feature @@ -1 +1 @@ -Add support for Python 3.10 in Github Action and fix the warning. +Added support for Python 3.10 to Github Actions CI/CD workflows and fix the related deprecation warnings -- :user:`Hanaasagi`. From 87e4cc5f2e3ac60e4e16c1bc8b116105689157d2 Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Wed, 6 Oct 2021 21:57:35 +0000 Subject: [PATCH 05/10] revert tailing whitespace changes --- docs/third_party.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/third_party.rst b/docs/third_party.rst index c180322dc15..212543cca65 100644 --- a/docs/third_party.rst +++ b/docs/third_party.rst @@ -290,6 +290,6 @@ ask to raise the status. - `aiohttp-retry `_ Wrapper for aiohttp client for retrying requests. Python 3.6+ required. - + - `aiohttp-socks `_ SOCKS proxy connector for aiohttp. From 2bfd4545197a992ccf1ed64e53b1e9beb1f97ccb Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Thu, 7 Oct 2021 02:56:33 +0000 Subject: [PATCH 06/10] temporarily mark the secure proxy test xfailed in 3.10 --- tests/test_proxy_functional.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/test_proxy_functional.py b/tests/test_proxy_functional.py index eb44fd04630..ee1a383e0c6 100644 --- a/tests/test_proxy_functional.py +++ b/tests/test_proxy_functional.py @@ -2,6 +2,7 @@ import asyncio import os import pathlib +import sys from re import match as match_regex from typing import Any from unittest import mock @@ -15,6 +16,8 @@ from aiohttp import web from aiohttp.client_exceptions import ClientConnectionError +PY_310 = sys.version_info >= (3, 10) + ASYNCIO_SUPPORTS_TLS_IN_TLS = hasattr( asyncio.sslproto._SSLProtocolTransport, "_start_tls_compatible", @@ -113,6 +116,7 @@ def _pretend_asyncio_supports_tls_in_tls( ) +@pytest.mark.xfail(PY_310, reason="we need to fix the secure proxy fixture in 3.10") @pytest.mark.parametrize("web_server_endpoint_type", ("http", "https")) @pytest.mark.usefixtures("_pretend_asyncio_supports_tls_in_tls", "loop") async def test_secure_https_proxy_absolute_path( @@ -139,6 +143,7 @@ async def test_secure_https_proxy_absolute_path( await conn.close() +@pytest.mark.xfail(PY_310, reason="we need to fix the secure proxy fixture in 3.10") @pytest.mark.parametrize("web_server_endpoint_type", ("https",)) @pytest.mark.usefixtures("loop") async def test_https_proxy_unsupported_tls_in_tls( From eaa02fd969edf594ca2680ba6bac7cd39974e7b5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 7 Oct 2021 02:59:30 +0000 Subject: [PATCH 07/10] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/third_party.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/third_party.rst b/docs/third_party.rst index 212543cca65..c180322dc15 100644 --- a/docs/third_party.rst +++ b/docs/third_party.rst @@ -290,6 +290,6 @@ ask to raise the status. - `aiohttp-retry `_ Wrapper for aiohttp client for retrying requests. Python 3.6+ required. - + - `aiohttp-socks `_ SOCKS proxy connector for aiohttp. From 7f3c235360d3b0684f5ed220b6247c77e74e1472 Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Thu, 7 Oct 2021 03:52:46 +0000 Subject: [PATCH 08/10] only mark proxy test xpass in 3.10 macos --- tests/test_proxy_functional.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/test_proxy_functional.py b/tests/test_proxy_functional.py index ee1a383e0c6..21c7e03158b 100644 --- a/tests/test_proxy_functional.py +++ b/tests/test_proxy_functional.py @@ -2,6 +2,7 @@ import asyncio import os import pathlib +import platform import sys from re import match as match_regex from typing import Any @@ -116,7 +117,10 @@ def _pretend_asyncio_supports_tls_in_tls( ) -@pytest.mark.xfail(PY_310, reason="we need to fix the secure proxy fixture in 3.10") +@pytest.mark.xfail( + PY_310 and platform.system() != "Darwin", + reason="we need to fix the secure proxy fixture in 3.10", +) @pytest.mark.parametrize("web_server_endpoint_type", ("http", "https")) @pytest.mark.usefixtures("_pretend_asyncio_supports_tls_in_tls", "loop") async def test_secure_https_proxy_absolute_path( @@ -143,7 +147,10 @@ async def test_secure_https_proxy_absolute_path( await conn.close() -@pytest.mark.xfail(PY_310, reason="we need to fix the secure proxy fixture in 3.10") +@pytest.mark.xfail( + PY_310 and platform.system() != "Darwin", + reason="we need to fix the secure proxy fixture in 3.10", +) @pytest.mark.parametrize("web_server_endpoint_type", ("https",)) @pytest.mark.usefixtures("loop") async def test_https_proxy_unsupported_tls_in_tls( From eeca1527390e63e42d0947aa6375386e497d1b6a Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Thu, 7 Oct 2021 17:06:38 +0000 Subject: [PATCH 09/10] make xfail condition more universal. --- aiohttp/helpers.py | 1 + tests/test_proxy_functional.py | 25 ++++++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/aiohttp/helpers.py b/aiohttp/helpers.py index ad80ffe47bb..948b12f99d8 100644 --- a/aiohttp/helpers.py +++ b/aiohttp/helpers.py @@ -55,6 +55,7 @@ __all__ = ("BasicAuth", "ChainMapProxy", "ETag") PY_38 = sys.version_info >= (3, 8) +PY_310 = sys.version_info >= (3, 10) COOKIE_MAX_LENGTH = 4096 diff --git a/tests/test_proxy_functional.py b/tests/test_proxy_functional.py index 21c7e03158b..99252e4cd71 100644 --- a/tests/test_proxy_functional.py +++ b/tests/test_proxy_functional.py @@ -1,9 +1,9 @@ # type: ignore import asyncio +import functools import os import pathlib import platform -import sys from re import match as match_regex from typing import Any from unittest import mock @@ -15,9 +15,18 @@ import aiohttp from aiohttp import web -from aiohttp.client_exceptions import ClientConnectionError +from aiohttp.client_exceptions import ClientConnectionError, ClientProxyConnectionError +from aiohttp.helpers import PY_310 -PY_310 = sys.version_info >= (3, 10) +secure_proxy_xfail_under_py310_except_macos = functools.partial( + pytest.mark.xfail, + PY_310 and platform.system() != "Darwin", + reason=( + "The secure proxy fixture does not seem to work " + "under Python 3.10 on Linux or Windows. " + "See https://github.com/abhinavsingh/proxy.py/issues/622." + ), +) ASYNCIO_SUPPORTS_TLS_IN_TLS = hasattr( asyncio.sslproto._SSLProtocolTransport, @@ -117,10 +126,7 @@ def _pretend_asyncio_supports_tls_in_tls( ) -@pytest.mark.xfail( - PY_310 and platform.system() != "Darwin", - reason="we need to fix the secure proxy fixture in 3.10", -) +@secure_proxy_xfail_under_py310_except_macos(raises=ClientProxyConnectionError) @pytest.mark.parametrize("web_server_endpoint_type", ("http", "https")) @pytest.mark.usefixtures("_pretend_asyncio_supports_tls_in_tls", "loop") async def test_secure_https_proxy_absolute_path( @@ -147,10 +153,7 @@ async def test_secure_https_proxy_absolute_path( await conn.close() -@pytest.mark.xfail( - PY_310 and platform.system() != "Darwin", - reason="we need to fix the secure proxy fixture in 3.10", -) +@secure_proxy_xfail_under_py310_except_macos() @pytest.mark.parametrize("web_server_endpoint_type", ("https",)) @pytest.mark.usefixtures("loop") async def test_https_proxy_unsupported_tls_in_tls( From eb1f29fcc06deee531a0996ca78c9aa51a161f72 Mon Sep 17 00:00:00 2001 From: Hanaasagi Date: Fri, 8 Oct 2021 01:35:40 +0000 Subject: [PATCH 10/10] add more precise xfail condition --- tests/test_proxy_functional.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_proxy_functional.py b/tests/test_proxy_functional.py index 99252e4cd71..8d0d488929c 100644 --- a/tests/test_proxy_functional.py +++ b/tests/test_proxy_functional.py @@ -153,7 +153,7 @@ async def test_secure_https_proxy_absolute_path( await conn.close() -@secure_proxy_xfail_under_py310_except_macos() +@secure_proxy_xfail_under_py310_except_macos(raises=AssertionError) @pytest.mark.parametrize("web_server_endpoint_type", ("https",)) @pytest.mark.usefixtures("loop") async def test_https_proxy_unsupported_tls_in_tls(