diff --git a/tests/test_routing_facade_contract.py b/tests/test_routing_facade_contract.py index dc044d8dba..5bf5f6751f 100644 --- a/tests/test_routing_facade_contract.py +++ b/tests/test_routing_facade_contract.py @@ -1,4 +1,7 @@ +from enum import IntEnum + import fastapi.routing as routing +from starlette.responses import Response from fastapi.routing_handlers import RouteHandlerConfig from fastapi.routing_router import APIRouter from fastapi.routing_routes import APIRoute, APIWebSocketRoute @@ -34,3 +37,22 @@ def test_routing_facade_re_exports_handler_contracts() -> None: def test_routing_ping_constant_compatibility() -> None: assert isinstance(routing._PING_INTERVAL, (float, int)) + + +class _CreatedStatus(IntEnum): + CREATED = 201 + + +def _raw_response_endpoint() -> Response: + return Response(content="ok") + + +def test_api_route_defaults_and_intenum_status_paths() -> None: + route = routing.APIRoute( + "/raw-response", + _raw_response_endpoint, + status_code=_CreatedStatus.CREATED, + ) + assert route.response_model is None + assert route.status_code == 201 + assert route.methods == {"GET"}