Skip to content

Commit 6d89eb8

Browse files
committed
Handle HTTPException from dependencies
1 parent 97ee527 commit 6d89eb8

1 file changed

Lines changed: 18 additions & 14 deletions

File tree

debug_toolbar/panels/sqlalchemy.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from contextlib import AsyncExitStack
33
from time import perf_counter
44

5-
from fastapi import Request, Response
5+
from fastapi import HTTPException, Request, Response
66
from fastapi.dependencies.utils import solve_dependencies
77
from sqlalchemy import event
88
from sqlalchemy.engine import Connection, Engine, ExecutionContext
@@ -44,20 +44,24 @@ async def add_engines(self, request: Request):
4444
route = request["route"]
4545

4646
if hasattr(route, "dependant"):
47-
solved_result = await solve_dependencies(
48-
request=request,
49-
dependant=route.dependant,
50-
dependency_overrides_provider=route.dependency_overrides_provider,
51-
async_exit_stack=AsyncExitStack(),
52-
)
53-
for value in solved_result[0].values():
54-
if isinstance(value, Session):
55-
bind = value.get_bind()
47+
try:
48+
solved_result = await solve_dependencies(
49+
request=request,
50+
dependant=route.dependant,
51+
dependency_overrides_provider=route.dependency_overrides_provider,
52+
async_exit_stack=AsyncExitStack(),
53+
)
54+
except HTTPException:
55+
pass
56+
else:
57+
for value in solved_result[0].values():
58+
if isinstance(value, Session):
59+
bind = value.get_bind()
5660

57-
if isinstance(bind, Connection):
58-
self.engines.add(bind.engine)
59-
else:
60-
self.engines.add(bind)
61+
if isinstance(bind, Connection):
62+
self.engines.add(bind.engine)
63+
else:
64+
self.engines.add(bind)
6165

6266
async def process_request(self, request: Request) -> Response:
6367
await self.add_engines(request)

0 commit comments

Comments
 (0)