From 314a6f9015c15abf18a1cab3077acdca4862d142 Mon Sep 17 00:00:00 2001 From: rajratanm Date: Tue, 24 Mar 2026 17:37:11 +0530 Subject: [PATCH] Add routing request_response branch coverage tests. Cover both sync and async wrapper paths in request_response to keep aggregate coverage at the repository fail-under threshold. Made-with: Cursor --- tests/test_routing_facade_contract.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/test_routing_facade_contract.py b/tests/test_routing_facade_contract.py index 4c9ca931c0..8dbcc868b2 100644 --- a/tests/test_routing_facade_contract.py +++ b/tests/test_routing_facade_contract.py @@ -5,7 +5,9 @@ from fastapi.routing_handlers import RouteHandlerConfig from fastapi.routing_router import APIRouter from fastapi.routing_routes import APIRoute, APIWebSocketRoute from fastapi.routing_utils import request_response, websocket_session +from starlette.requests import Request from starlette.responses import Response +from starlette.testclient import TestClient def test_routing_facade_exports_expected_symbols() -> None: @@ -56,3 +58,25 @@ def test_api_route_defaults_and_intenum_status_paths() -> None: assert route.response_model is None assert route.status_code == 201 assert route.methods == {"GET"} + + +def test_request_response_wraps_sync_callable() -> None: + def endpoint(_: Request) -> Response: + return Response("sync-ok") + + app = request_response(endpoint) + client = TestClient(app) + response = client.get("/") + assert response.status_code == 200 + assert response.text == "sync-ok" + + +def test_request_response_wraps_async_callable() -> None: + async def endpoint(_: Request) -> Response: + return Response("async-ok") + + app = request_response(endpoint) + client = TestClient(app) + response = client.get("/") + assert response.status_code == 200 + assert response.text == "async-ok"