1616from litestar .middleware .rate_limit import RateLimitConfig
1717from litestar .middleware .session .server_side import ServerSideSessionConfig
1818from litestar .testing import TestClient
19-
2019from tests .integrations .conftest import parametrize_test_configurable_status_codes
2120
2221
@@ -402,7 +401,7 @@ async def __call__(self, scope, receive, send):
402401
403402
404403@parametrize_test_configurable_status_codes
405- def test_configurable_status_codes (
404+ def test_configurable_status_codes_handler (
406405 sentry_init ,
407406 capture_events ,
408407 failed_request_status_codes ,
@@ -427,3 +426,41 @@ async def error() -> None:
427426 client .get ("/error" )
428427
429428 assert len (events ) == int (expected_error )
429+
430+ # @pytest.mark.parametrize(
431+ # ("failed_request_status_codes", "status_code", "expected_error"),
432+ # (
433+ # (set(), 500, False),
434+ # ),
435+ # )
436+ @parametrize_test_configurable_status_codes
437+ def test_configurable_status_codes_middleware (
438+ sentry_init ,
439+ capture_events ,
440+ failed_request_status_codes ,
441+ status_code ,
442+ expected_error ,
443+ ):
444+ integration_kwargs = (
445+ {"failed_request_status_codes" : failed_request_status_codes }
446+ if failed_request_status_codes is not None
447+ else {}
448+ )
449+ sentry_init (integrations = [LitestarIntegration (** integration_kwargs )])
450+
451+ events = capture_events ()
452+
453+ def create_raising_middleware (app ):
454+ async def raising_middleware (scope , receive , send ):
455+ raise HTTPException (status_code = status_code )
456+ return raising_middleware
457+
458+ @get ("/error" )
459+ async def error () -> None :
460+ ...
461+
462+ app = Litestar ([error ], middleware = [create_raising_middleware ])
463+ client = TestClient (app )
464+ client .get ("/error" )
465+
466+ assert len (events ) == int (expected_error )
0 commit comments