회기 연속성과 멀티 케이스 계약을 영속화
This commit is contained in:
parent
be08c0b573
commit
72353ecd82
26 changed files with 2170 additions and 127 deletions
|
|
@ -429,6 +429,46 @@ class EvaluationPersistenceMappingTest(unittest.IsolatedAsyncioTestCase):
|
|||
self.assertNotIn("010-1234-5678", blob)
|
||||
self.assertIn("[NAME]", blob)
|
||||
self.assertIn("[PHONE]", blob)
|
||||
self.assertIn(
|
||||
"WHERE app.session_evaluation.status <> 'ready'",
|
||||
conn.executed[0][0],
|
||||
)
|
||||
|
||||
def test_late_error_never_replaces_ready_evaluation_record(self) -> None:
|
||||
ready = {"status": "ready", "payload": {"strengths": ["완료"]}}
|
||||
error = {"status": "error", "error": "late timeout"}
|
||||
|
||||
self.assertFalse(
|
||||
session_persistence._should_replace_evaluation_record(ready, error)
|
||||
)
|
||||
self.assertTrue(
|
||||
session_persistence._should_replace_evaluation_record(error, ready)
|
||||
)
|
||||
self.assertTrue(
|
||||
session_persistence._should_replace_evaluation_record(ready, ready)
|
||||
)
|
||||
|
||||
async def test_fallback_cache_keeps_ready_result_when_late_error_arrives(self) -> None:
|
||||
session_id = "11111111-1111-1111-1111-111111111111"
|
||||
session_persistence._EVALUATION_CACHE[session_id] = {"status": "ready"}
|
||||
self.addCleanup(session_persistence._EVALUATION_CACHE.pop, session_id, None)
|
||||
write = session_persistence.SessionEvaluationWrite.from_error(
|
||||
session_id=session_id,
|
||||
learner_id="22222222-2222-2222-2222-222222222222",
|
||||
scope="session_end",
|
||||
stage="정리",
|
||||
error="late timeout",
|
||||
)
|
||||
|
||||
with (
|
||||
patch.object(session_persistence, "runtime_fallback_allowed", return_value=True),
|
||||
patch.object(session_persistence, "get_pool", side_effect=RuntimeError("offline")),
|
||||
patch.object(session_persistence, "require_runtime_fallback_allowed"),
|
||||
):
|
||||
saved = await session_persistence.save_session_evaluation(write)
|
||||
|
||||
self.assertFalse(saved)
|
||||
self.assertEqual(session_persistence._EVALUATION_CACHE[session_id]["status"], "ready")
|
||||
|
||||
def test_rebuild_turn_evaluation_restores_review_shape(self) -> None:
|
||||
rebuilt = session_persistence._rebuild_turn_evaluations(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue