회기 연속성과 멀티 케이스 계약을 영속화

This commit is contained in:
Yun Chan 2026-09-01 11:45:16 +09:00
parent be08c0b573
commit 72353ecd82
26 changed files with 2170 additions and 127 deletions

View file

@ -10,7 +10,6 @@ from fastapi import HTTPException
from .config import settings
from .deps import Principal, Role
from .routes import teacher
from .session_read_model import MISSING_SESSION_EVALUATION_ERROR
from .services import state_machine
from .services.persona import P1
from .store import InProcSession, TurnRecord
@ -424,7 +423,11 @@ class TeacherDashboardGrowthTest(unittest.IsolatedAsyncioTestCase):
self.assertEqual(failed.evaluation_status, "error")
self.assertFalse(failed.review_ready)
self.assertEqual(failed.supervisor_state, "평가 실패")
self.assertEqual(failed.evaluation_error, "session evaluation timeout after 45s")
self.assertEqual(
failed.evaluation_error,
"AI 평가가 제한 시간 안에 끝나지 않았습니다. 다시 시도할 수 있습니다.",
)
self.assertNotIn("session evaluation timeout after 45s", response.model_dump_json())
async def test_dashboard_marks_stale_missing_session_evaluation_as_failed(self) -> None:
principal = _principal()
@ -468,7 +471,10 @@ class TeacherDashboardGrowthTest(unittest.IsolatedAsyncioTestCase):
self.assertEqual(failed.evaluation_status, "error")
self.assertFalse(failed.review_ready)
self.assertEqual(failed.supervisor_state, "평가 실패")
self.assertEqual(failed.evaluation_error, MISSING_SESSION_EVALUATION_ERROR)
self.assertEqual(
failed.evaluation_error,
"회기말 평가 기록이 아직 저장되지 않았습니다. 다시 시도할 수 있습니다.",
)
async def test_dashboard_fails_closed_when_safety_alerts_are_not_durable_outside_dev(self) -> None:
principal = _principal()