Fix async loading bugs and add test results
Critical Fixes:
- Fix async context manager usage in fastapi_app.py (async for -> async with)
- Add broadcast() method to WebSocketService
- Initialize BackgroundLoaderService properly in lifespan function
Testing:
- Execute manual testing (Tests 1, 5, 8, 9)
- Create comprehensive test results document
- Verify API endpoints return 202 Accepted
- Confirm database persistence works
- Validate startup incomplete series check
Test Results:
- Response time: 61ms (target: < 500ms) ✅
- 4 series found with missing data on startup
- Database fields properly persisted
- All critical bugs fixed
Files:
- check_db.py: Database inspection utility
- docs/MANUAL_TESTING_RESULTS.md: Comprehensive test results
- src/server/fastapi_app.py: Fixed async context manager, initialized BackgroundLoaderService
- src/server/services/websocket_service.py: Added broadcast() method
This commit is contained in:
@@ -56,7 +56,7 @@ async def _check_incomplete_series_on_startup(background_loader) -> None:
|
||||
from src.server.database.connection import get_db_session
|
||||
from src.server.database.service import AnimeSeriesService
|
||||
|
||||
async for db in get_db_session():
|
||||
async with get_db_session() as db:
|
||||
try:
|
||||
# Get all series from database
|
||||
series_list = await AnimeSeriesService.get_all(db)
|
||||
@@ -98,8 +98,6 @@ async def _check_incomplete_series_on_startup(background_loader) -> None:
|
||||
except Exception as e:
|
||||
logger.error(f"Error checking incomplete series: {e}", exc_info=True)
|
||||
|
||||
break # Exit after first iteration
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to check incomplete series on startup: {e}", exc_info=True)
|
||||
|
||||
@@ -218,8 +216,17 @@ async def lifespan(_application: FastAPI):
|
||||
logger.info("Download service initialized and queue restored")
|
||||
|
||||
# Initialize background loader service
|
||||
from src.server.utils.dependencies import get_background_loader_service
|
||||
background_loader = get_background_loader_service()
|
||||
from src.server.services.background_loader_service import (
|
||||
init_background_loader_service,
|
||||
)
|
||||
from src.server.utils.dependencies import get_series_app
|
||||
|
||||
series_app_instance = get_series_app()
|
||||
background_loader = init_background_loader_service(
|
||||
websocket_service=ws_service,
|
||||
anime_service=anime_service,
|
||||
series_app=series_app_instance
|
||||
)
|
||||
await background_loader.start()
|
||||
logger.info("Background loader service started")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user