개선관리 요구사항과 Google 로그인을 완료

This commit is contained in:
Yun Chan 2026-08-28 16:07:09 +09:00
parent cc0a15b7c6
commit 2a39636163
112 changed files with 10166 additions and 527 deletions

View file

@ -0,0 +1,74 @@
"""첫 회기 라포·개방질문 체크리스트의 결정론 계약 테스트."""
from __future__ import annotations
import unittest
from .session_read_model import ReviewTurn, first_session_checklist
def _turn(turn_id: str, text: str, *, speaker: str = "learner") -> ReviewTurn:
return ReviewTurn(
id=turn_id,
ts="0:00",
speaker=speaker,
who="상담자" if speaker == "learner" else "내담자",
text=text,
)
class FirstSessionChecklistTest(unittest.TestCase):
def test_first_session_links_versioned_criteria_to_evidence_turns(self) -> None:
checklist = first_session_checklist(
session_no=1,
turns=[
_turn(
"t1",
"그동안 혼자 버티느라 많이 힘들게 느껴졌겠어요. 어떤 순간이 가장 어려웠나요?",
),
_turn("t2", "그냥 계속 힘들었어요.", speaker="client"),
],
)
self.assertEqual(checklist.version, "first-session-rapport-open-question.v1")
self.assertTrue(checklist.applicable)
self.assertEqual(
[criterion.criterionId for criterion in checklist.criteria],
[
"first-session.rapport-reflection",
"first-session.open-question-one-focus",
],
)
self.assertEqual(
[criterion.status for criterion in checklist.criteria],
["met", "met"],
)
self.assertEqual(checklist.criteria[0].evidenceTurns[0].turnId, "t1")
self.assertEqual(checklist.criteria[0].evidenceTurns[0].turnSeq, 1)
def test_first_session_keeps_missing_behavior_visible_without_scoring(self) -> None:
checklist = first_session_checklist(
session_no=1,
turns=[_turn("t1", "네, 알겠습니다. 그렇게 하세요.")],
)
self.assertEqual(
[criterion.status for criterion in checklist.criteria],
["not_observed", "not_observed"],
)
self.assertTrue(all(not item.evidenceTurns for item in checklist.criteria))
self.assertIn("임상 평가나 성적 판정이 아닙니다", checklist.note)
def test_later_session_is_explicitly_not_applicable(self) -> None:
checklist = first_session_checklist(
session_no=2,
turns=[_turn("t1", "어떤 마음이 들었나요?")],
)
self.assertFalse(checklist.applicable)
self.assertEqual(checklist.status, "not_applicable")
self.assertEqual(checklist.criteria, [])
if __name__ == "__main__":
unittest.main()