회기 무발화 0턴 분리, 자기예측 락 불변식 및 TDD 회귀 검증 완료
Some checks failed
API contract / OpenAPI type drift (push) Failing after 3m27s
Some checks failed
API contract / OpenAPI type drift (push) Failing after 3m27s
This commit is contained in:
parent
a479db7a5a
commit
a0311c5957
100 changed files with 4884 additions and 11210 deletions
|
|
@ -627,6 +627,50 @@ class CalibrationTransferStoreTests(unittest.IsolatedAsyncioTestCase):
|
|||
evidence_turn_ids=(),
|
||||
)
|
||||
|
||||
async def test_append_prediction_revision_normalizes_legacy_instrument_id(self) -> None:
|
||||
principal = _principal(Role.LEARNER)
|
||||
learner_id = UUID(principal.user_id)
|
||||
session_id = uuid4()
|
||||
history_id = uuid4()
|
||||
revision_id = uuid4()
|
||||
conn = AsyncMock()
|
||||
conn.fetchrow.side_effect = [
|
||||
{"id": session_id, "learner_id": learner_id, "case_id": uuid4()},
|
||||
None,
|
||||
None,
|
||||
{"prediction_revision_id": str(revision_id), "revision_no": 1},
|
||||
]
|
||||
|
||||
@asynccontextmanager
|
||||
async def fake_acquire(**_kwargs):
|
||||
yield conn
|
||||
|
||||
with patch.object(calibration_transfer_store.db, "acquire", fake_acquire):
|
||||
res = await calibration_transfer_store.append_prediction_revision(
|
||||
principal=principal,
|
||||
submission_id=uuid4(),
|
||||
prediction_revision_id=revision_id,
|
||||
history_id=history_id,
|
||||
session_id=session_id,
|
||||
competency_id="competency.empathic-check",
|
||||
practice_block_id="oas-g5-block-one",
|
||||
scenario_variant_id="variant-1",
|
||||
phrase_family_id="phrase-1",
|
||||
revision_no=1,
|
||||
supersedes_prediction_revision_id=None,
|
||||
predicted_success_probability=0.7,
|
||||
confidence=0.8,
|
||||
recorded_sequence=1,
|
||||
revision_reason="호환성 검증",
|
||||
instrument_id="vignette.calibration-self-prediction",
|
||||
instrument_version="1.0.0",
|
||||
evidence_turn_ids=(),
|
||||
)
|
||||
self.assertEqual(res["revision_no"], 1)
|
||||
# Verify normalized instrument_id "calibration-mirror-g5" was passed to DB
|
||||
call_args = conn.fetchrow.call_args_list[-1][0]
|
||||
self.assertIn("calibration-mirror-g5", call_args)
|
||||
|
||||
async def test_evidence_refs_are_uuid_only(self) -> None:
|
||||
self.assertEqual(
|
||||
calibration_transfer_store._uuid_evidence(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue