Fix generator exception handling in database dependencies
- Add proper exception handling in get_database_session and get_optional_database_session - Prevents 'generator didn't stop after athrow()' error when HTTPException is raised - Add mock for BackgroundLoaderService in anime endpoint tests - Update test expectations to match 202 Accepted response for async add_series endpoint
This commit is contained in:
@@ -126,7 +126,12 @@ async def get_database_session() -> AsyncGenerator:
|
||||
from src.server.database import get_db_session
|
||||
|
||||
async with get_db_session() as session:
|
||||
yield session
|
||||
try:
|
||||
yield session
|
||||
except Exception:
|
||||
# Re-raise the exception to let FastAPI handle it
|
||||
# This prevents "generator didn't stop after athrow()" error
|
||||
raise
|
||||
except ImportError:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_501_NOT_IMPLEMENTED,
|
||||
@@ -165,7 +170,12 @@ async def get_optional_database_session() -> AsyncGenerator:
|
||||
from src.server.database import get_db_session
|
||||
|
||||
async with get_db_session() as session:
|
||||
yield session
|
||||
try:
|
||||
yield session
|
||||
except Exception:
|
||||
# Re-raise the exception to let FastAPI handle it
|
||||
# This prevents "generator didn't stop after athrow()" error
|
||||
raise
|
||||
except (ImportError, RuntimeError):
|
||||
# Database not available - yield None
|
||||
yield None
|
||||
|
||||
Reference in New Issue
Block a user