From 62e52f30f75b42290e32adb85dd1319b9c5a0072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= Date: Mon, 25 Mar 2024 21:48:07 +0100 Subject: [PATCH] Stop using deprecated app shortcut in httpx.AsyncClient This keyword parameter has been deprecated with httpx 0.27 --- tests/middleware/test_message_logger.py | 8 ++++---- tests/middleware/test_proxy_headers.py | 6 +++--- tests/middleware/test_wsgi.py | 23 ++++++++--------------- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/tests/middleware/test_message_logger.py b/tests/middleware/test_message_logger.py index 3f5c3af..d066e99 100644 --- a/tests/middleware/test_message_logger.py +++ b/tests/middleware/test_message_logger.py @@ -17,8 +17,8 @@ async def test_message_logger(caplog): caplog.set_level(TRACE_LOG_LEVEL, logger="uvicorn.asgi") caplog.set_level(TRACE_LOG_LEVEL) - app = MessageLoggerMiddleware(app) - async with httpx.AsyncClient(app=app, base_url="http://testserver") as client: + transport = httpx.ASGITransport(MessageLoggerMiddleware(app)) + async with httpx.AsyncClient(transport=transport, base_url="http://testserver") as client: response = await client.get("/") assert response.status_code == 200 messages = [record.msg % record.args for record in caplog.records] @@ -37,8 +37,8 @@ async def test_message_logger_exc(caplog): with caplog_for_logger(caplog, "uvicorn.asgi"): caplog.set_level(TRACE_LOG_LEVEL, logger="uvicorn.asgi") caplog.set_level(TRACE_LOG_LEVEL) - app = MessageLoggerMiddleware(app) - async with httpx.AsyncClient(app=app, base_url="http://testserver") as client: + transport = httpx.ASGITransport(MessageLoggerMiddleware(app)) + async with httpx.AsyncClient(transport=transport, base_url="http://testserver") as client: with pytest.raises(RuntimeError): await client.get("/") messages = [record.msg % record.args for record in caplog.records] diff --git a/tests/middleware/test_proxy_headers.py b/tests/middleware/test_proxy_headers.py index 6d7fc8c..e50defa 100644 --- a/tests/middleware/test_proxy_headers.py +++ b/tests/middleware/test_proxy_headers.py @@ -49,7 +49,7 @@ async def app( ) async def test_proxy_headers_trusted_hosts(trusted_hosts: list[str] | str, response_text: str) -> None: app_with_middleware = ProxyHeadersMiddleware(app, trusted_hosts=trusted_hosts) - async with httpx.AsyncClient(app=app_with_middleware, base_url="http://testserver") as client: + async with httpx.AsyncClient(transport=httpx.ASGITransport(app=app_with_middleware), base_url="http://testserver") as client: headers = {"X-Forwarded-Proto": "https", "X-Forwarded-For": "1.2.3.4"} response = await client.get("/", headers=headers) @@ -79,7 +79,7 @@ async def test_proxy_headers_trusted_hosts(trusted_hosts: list[str] | str, respo ) async def test_proxy_headers_multiple_proxies(trusted_hosts: list[str] | str, response_text: str) -> None: app_with_middleware = ProxyHeadersMiddleware(app, trusted_hosts=trusted_hosts) - async with httpx.AsyncClient(app=app_with_middleware, base_url="http://testserver") as client: + async with httpx.AsyncClient(transport=httpx.ASGITransport(app=app_with_middleware), base_url="http://testserver") as client: headers = { "X-Forwarded-Proto": "https", "X-Forwarded-For": "1.2.3.4, 10.0.2.1, 192.168.0.2", @@ -93,7 +93,7 @@ async def test_proxy_headers_multiple_proxies(trusted_hosts: list[str] | str, re @pytest.mark.anyio async def test_proxy_headers_invalid_x_forwarded_for() -> None: app_with_middleware = ProxyHeadersMiddleware(app, trusted_hosts="*") - async with httpx.AsyncClient(app=app_with_middleware, base_url="http://testserver") as client: + async with httpx.AsyncClient(transport=httpx.ASGITransport(app=app_with_middleware), base_url="http://testserver") as client: headers = httpx.Headers( { "X-Forwarded-Proto": "https", diff --git a/tests/middleware/test_wsgi.py b/tests/middleware/test_wsgi.py index adc8e24..478dd84 100644 --- a/tests/middleware/test_wsgi.py +++ b/tests/middleware/test_wsgi.py @@ -59,8 +59,8 @@ def wsgi_middleware(request: pytest.FixtureRequest) -> Callable: @pytest.mark.anyio async def test_wsgi_get(wsgi_middleware: Callable) -> None: - app = wsgi_middleware(hello_world) - async with httpx.AsyncClient(app=app, base_url="http://testserver") as client: + transport = httpx.ASGITransport(wsgi_middleware(hello_world)) + async with httpx.AsyncClient(transport=transport, base_url="http://testserver") as client: response = await client.get("/") assert response.status_code == 200 assert response.text == "Hello World!\n" @@ -68,8 +68,8 @@ async def test_wsgi_get(wsgi_middleware: Callable) -> None: @pytest.mark.anyio async def test_wsgi_post(wsgi_middleware: Callable) -> None: - app = wsgi_middleware(echo_body) - async with httpx.AsyncClient(app=app, base_url="http://testserver") as client: + transport = httpx.ASGITransport(wsgi_middleware(echo_body)) + async with httpx.AsyncClient(transport=transport, base_url="http://testserver") as client: response = await client.post("/", json={"example": 123}) assert response.status_code == 200 assert response.text == '{"example": 123}' @@ -81,8 +81,8 @@ async def test_wsgi_put_more_body(wsgi_middleware: Callable) -> None: for _ in range(1024): yield b"123456789abcdef\n" * 64 - app = wsgi_middleware(echo_body) - async with httpx.AsyncClient(app=app, base_url="http://testserver") as client: + transport = httpx.ASGITransport(wsgi_middleware(echo_body)) + async with httpx.AsyncClient(transport=transport, base_url="http://testserver") as client: response = await client.put("/", content=generate_body()) assert response.status_code == 200 assert response.text == "123456789abcdef\n" * 64 * 1024 @@ -92,21 +92,14 @@ async def test_wsgi_put_more_body(wsgi_middleware: Callable) -> None: async def test_wsgi_exception(wsgi_middleware: Callable) -> None: # Note that we're testing the WSGI app directly here. # The HTTP protocol implementations would catch this error and return 500. - app = wsgi_middleware(raise_exception) - async with httpx.AsyncClient(app=app, base_url="http://testserver") as client: + transport = httpx.ASGITransport(wsgi_middleware(raise_exception)) + async with httpx.AsyncClient(transport=transport, base_url="http://testserver") as client: with pytest.raises(RuntimeError): await client.get("/") @pytest.mark.anyio async def test_wsgi_exc_info(wsgi_middleware: Callable) -> None: - # Note that we're testing the WSGI app directly here. - # The HTTP protocol implementations would catch this error and return 500. - app = wsgi_middleware(return_exc_info) - async with httpx.AsyncClient(app=app, base_url="http://testserver") as client: - with pytest.raises(RuntimeError): - response = await client.get("/") - app = wsgi_middleware(return_exc_info) transport = httpx.ASGITransport( app=app, -- 2.44.0