음성 재생과 운영 배포 정리
This commit is contained in:
parent
8ed185ce6c
commit
ac7db95542
1020 changed files with 46863 additions and 2175 deletions
|
|
@ -258,6 +258,67 @@ class LearnerSessionIdorTest(unittest.IsolatedAsyncioTestCase):
|
|||
)
|
||||
self.assertNotIn("SECRET_EVALUATOR_ONLY_REVIEW", rendered)
|
||||
|
||||
async def test_teacher_can_read_session_review_but_not_save_learner_worksheet(self) -> None:
|
||||
owner = _principal(
|
||||
user_id="00000000-0000-0000-0000-000000000114",
|
||||
)
|
||||
teacher = _principal(
|
||||
user_id="00000000-0000-0000-0000-000000000901",
|
||||
role=Role.TEACHER,
|
||||
)
|
||||
sess = _session(
|
||||
session_id="00000000-0000-0000-0000-00000000e114",
|
||||
learner_id=owner.user_id,
|
||||
)
|
||||
sess.ended = True
|
||||
sess.ended_at = 1_800_000_120.0
|
||||
sess.turns.extend(
|
||||
[
|
||||
_turn(seq=1, speaker="counselor", text="teacher review visible learner turn"),
|
||||
_turn(seq=2, speaker="client", text="teacher review visible client turn"),
|
||||
]
|
||||
)
|
||||
|
||||
with (
|
||||
patch.object(
|
||||
sessions.session_persistence,
|
||||
"load_session",
|
||||
AsyncMock(return_value=sess),
|
||||
) as load_session,
|
||||
patch.object(
|
||||
sessions.session_persistence,
|
||||
"load_session_evaluation",
|
||||
AsyncMock(return_value=(None, False)),
|
||||
),
|
||||
patch.object(
|
||||
sessions.session_persistence,
|
||||
"load_case_worksheet",
|
||||
AsyncMock(return_value=(None, False)),
|
||||
),
|
||||
):
|
||||
response = await sessions.get_session_review(sess.session_id, teacher)
|
||||
|
||||
load_session.assert_awaited_once_with(
|
||||
sess.session_id,
|
||||
teacher,
|
||||
allow_ended=True,
|
||||
include_turn_evaluation=True,
|
||||
)
|
||||
self.assertEqual(response.session_id, sess.session_id)
|
||||
self.assertEqual(
|
||||
[turn.text for turn in response.turns],
|
||||
["teacher review visible learner turn", "teacher review visible client turn"],
|
||||
)
|
||||
|
||||
with self.assertRaises(HTTPException) as caught:
|
||||
await sessions.save_session_review_worksheet(
|
||||
sess.session_id,
|
||||
sessions.ReviewCaseWorksheetSaveRequest(sections=[], limitations=[]),
|
||||
teacher,
|
||||
)
|
||||
|
||||
self.assertEqual(caught.exception.status_code, 403)
|
||||
|
||||
async def test_submit_turn_sends_only_client_visible_history_to_engine(self) -> None:
|
||||
owner = _principal(
|
||||
user_id="00000000-0000-0000-0000-000000000113",
|
||||
|
|
@ -338,6 +399,11 @@ class LearnerSessionIdorTest(unittest.IsolatedAsyncioTestCase):
|
|||
"list_sessions",
|
||||
AsyncMock(return_value=([], False)),
|
||||
),
|
||||
patch.object(
|
||||
sessions.session_persistence,
|
||||
"list_session_archives",
|
||||
AsyncMock(return_value=({}, False)),
|
||||
),
|
||||
patch.object(sessions, "require_runtime_fallback_allowed", return_value=None),
|
||||
patch.object(sessions, "_review_ready", AsyncMock(return_value=False)),
|
||||
):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue