This commit is contained in:
coletdjnz 2024-07-14 12:40:27 +12:00
parent 55540caf6b
commit 34ef90d1ba
No known key found for this signature in database
GPG key ID: 91984263BB39894A

View file

@ -12,6 +12,7 @@ from http.server import BaseHTTPRequestHandler
from socketserver import BaseRequestHandler, ThreadingTCPServer from socketserver import BaseRequestHandler, ThreadingTCPServer
import pytest import pytest
import platform
from test.helper import http_server_port, verify_address_availability from test.helper import http_server_port, verify_address_availability
from test.test_networking import TEST_DIR from test.test_networking import TEST_DIR
@ -445,11 +446,11 @@ class TestHTTPConnectProxy:
assert proxy_info['client_address'][0] == source_address assert proxy_info['client_address'][0] == source_address
@pytest.mark.skipif(urllib3 is None, reason='requires urllib3 to test') @pytest.mark.skipif(urllib3 is None, reason='requires urllib3 to test')
# @pytest.mark.skip_handler_if( @pytest.mark.skip_handler_if(
# 'Websockets', lambda request: 'Websockets', lambda request:
# (platform.python_implementation() == 'PyPy' (platform.python_implementation() == 'PyPy'
# and request.getfixturevalue('ctx').REQUEST_PROTO == 'wss'), and request.getfixturevalue('ctx').REQUEST_PROTO == 'wss'),
# 'PyPy sometimes fails with WSS over TLS tests, unknown reason') 'PyPy sometimes fails with WSS over TLS tests, unknown reason')
def test_https_connect_proxy(self, handler, ctx): def test_https_connect_proxy(self, handler, ctx):
with ctx.http_server(HTTPSConnectProxyHandler) as server_address: with ctx.http_server(HTTPSConnectProxyHandler) as server_address:
with handler(verify=False, proxies={ctx.REQUEST_PROTO: f'https://{server_address}'}) as rh: with handler(verify=False, proxies={ctx.REQUEST_PROTO: f'https://{server_address}'}) as rh:
@ -459,11 +460,11 @@ class TestHTTPConnectProxy:
assert 'Proxy-Authorization' not in proxy_info['headers'] assert 'Proxy-Authorization' not in proxy_info['headers']
@pytest.mark.skipif(urllib3 is None, reason='requires urllib3 to test') @pytest.mark.skipif(urllib3 is None, reason='requires urllib3 to test')
# @pytest.mark.skip_handler_if( @pytest.mark.skip_handler_if(
# 'Websockets', lambda request: 'Websockets', lambda request:
# (platform.python_implementation() == 'PyPy' (platform.python_implementation() == 'PyPy'
# and request.getfixturevalue('ctx').REQUEST_PROTO == 'wss'), and request.getfixturevalue('ctx').REQUEST_PROTO == 'wss'),
# 'PyPy sometimes fails with WSS over TLS tests, unknown reason') 'PyPy sometimes fails with WSS over TLS tests, unknown reason')
def test_https_connect_verify_failed(self, handler, ctx): def test_https_connect_verify_failed(self, handler, ctx):
with ctx.http_server(HTTPSConnectProxyHandler) as server_address: with ctx.http_server(HTTPSConnectProxyHandler) as server_address:
with handler(verify=True, proxies={ctx.REQUEST_PROTO: f'https://{server_address}'}) as rh: with handler(verify=True, proxies={ctx.REQUEST_PROTO: f'https://{server_address}'}) as rh:
@ -474,11 +475,11 @@ class TestHTTPConnectProxy:
ctx.proxy_info_request(rh) ctx.proxy_info_request(rh)
@pytest.mark.skipif(urllib3 is None, reason='requires urllib3 to test') @pytest.mark.skipif(urllib3 is None, reason='requires urllib3 to test')
# @pytest.mark.skip_handler_if( @pytest.mark.skip_handler_if(
# 'Websockets', lambda request: 'Websockets', lambda request:
# (platform.python_implementation() == 'PyPy' (platform.python_implementation() == 'PyPy'
# and request.getfixturevalue('ctx').REQUEST_PROTO == 'wss'), and request.getfixturevalue('ctx').REQUEST_PROTO == 'wss'),
# 'PyPy sometimes fails with WSS over TLS tests, unknown reason') 'PyPy sometimes fails with WSS over TLS tests, unknown reason')
def test_https_connect_proxy_auth(self, handler, ctx): def test_https_connect_proxy_auth(self, handler, ctx):
with ctx.http_server(HTTPSConnectProxyHandler, username='test', password='test') as server_address: with ctx.http_server(HTTPSConnectProxyHandler, username='test', password='test') as server_address:
with handler(verify=False, proxies={ctx.REQUEST_PROTO: f'https://test:test@{server_address}'}) as rh: with handler(verify=False, proxies={ctx.REQUEST_PROTO: f'https://test:test@{server_address}'}) as rh: