Fix critical bug and deprecation warnings
- Fixed bug in games_router.py: player_result -> player_stmt in create_game - Updated main.py lifespan from generator to @asynccontextmanager (FastAPI deprecation) - security.py already uses datetime.now(timezone.utc) - no change needed - All 28 tests pass
This commit is contained in:
+3
-2
@@ -15,7 +15,7 @@ Mounts all consolidated routers and provides centralized configuration.
|
|||||||
"""
|
"""
|
||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
from typing import AsyncGenerator
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
@@ -36,7 +36,8 @@ from app.core.logging import configure_logging
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
|
@asynccontextmanager
|
||||||
|
async def lifespan(app: FastAPI):
|
||||||
"""Application lifespan events for startup and shutdown."""
|
"""Application lifespan events for startup and shutdown."""
|
||||||
config = get_config()
|
config = get_config()
|
||||||
|
|
||||||
|
|||||||
@@ -346,7 +346,7 @@ async def create_game(
|
|||||||
|
|
||||||
# Fetch players for response
|
# Fetch players for response
|
||||||
player_stmt = select(GamePlayer).where(GamePlayer.game_id == new_game.id)
|
player_stmt = select(GamePlayer).where(GamePlayer.game_id == new_game.id)
|
||||||
player_result = await db.execute(player_result)
|
player_result = await db.execute(player_stmt)
|
||||||
players = player_result.scalars().all()
|
players = player_result.scalars().all()
|
||||||
|
|
||||||
new_game.players = [GamePlayerResponse.model_validate(p) for p in players]
|
new_game.players = [GamePlayerResponse.model_validate(p) for p in players]
|
||||||
|
|||||||
+7
-9
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"project_summary": "MTG Online backend API with FastAPI, SQLAlchemy, and SQLite. Phase 5 development complete with all 28 tests passing.",
|
"project_summary": "MTG Online backend API with FastAPI, SQLAlchemy, and SQLite. Phase 5 development complete with all tests passing.",
|
||||||
"roadmap": [
|
"roadmap": [
|
||||||
{"phase": "Phase 1-4", "status": "completed"},
|
{"phase": "Phase 1-4", "status": "completed"},
|
||||||
{"phase": "Phase 5 - Game Management", "status": "completed"},
|
{"phase": "Phase 5 - Game Management", "status": "completed"},
|
||||||
@@ -14,21 +14,19 @@
|
|||||||
},
|
},
|
||||||
"architectural_notes": "Single-process FastAPI app with async SQLAlchemy. SQLite for development/testing. JWT auth with user roles.",
|
"architectural_notes": "Single-process FastAPI app with async SQLAlchemy. SQLite for development/testing. JWT auth with user roles.",
|
||||||
"task_description": "Fix remaining game model test failures",
|
"task_description": "Fix remaining game model test failures",
|
||||||
"current_step": "All 28 tests passing",
|
"current_step": "All tests passing",
|
||||||
"files_created": [],
|
"files_created": [],
|
||||||
"files_modified": [
|
"files_modified": [
|
||||||
"app/models/models.py"
|
"app/models/models.py"
|
||||||
],
|
],
|
||||||
"decisions": [
|
"decisions": [
|
||||||
"Use execution_options for implicit_returning in SQLAlchemy 2.0",
|
"Added host_id field to GameHistory model",
|
||||||
"Use datetime.now instead of func.now() for async serialization",
|
"Changed players relationship to lazy='selectin' for async compatibility"
|
||||||
"Use lazy='selectin' for async-safe relationship loading",
|
|
||||||
"Add host_id field to GameHistory model"
|
|
||||||
],
|
],
|
||||||
"next_steps": [
|
"next_steps": [
|
||||||
"Phase 6 - WebSocket Game Server"
|
"Phase 6: WebSocket game server development"
|
||||||
],
|
],
|
||||||
"blockers": [],
|
"blockers": [],
|
||||||
"commit_hash": "f7d6bfd",
|
"commit_hash": "3926b57",
|
||||||
"timestamp": "2026-10-18T04:02:00Z"
|
"timestamp": "2026-10-18T13:08:00Z"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user