음성 재생과 운영 배포 정리
This commit is contained in:
parent
8ed185ce6c
commit
ac7db95542
1020 changed files with 46863 additions and 2175 deletions
|
|
@ -103,6 +103,11 @@ class TeacherDashboardGrowthTest(unittest.IsolatedAsyncioTestCase):
|
|||
"list_safety_alerts",
|
||||
AsyncMock(return_value=([], True)),
|
||||
),
|
||||
patch.object(
|
||||
teacher.session_persistence,
|
||||
"list_session_review_statuses",
|
||||
AsyncMock(return_value=({}, True)),
|
||||
),
|
||||
):
|
||||
response = await teacher.teacher_dashboard(principal)
|
||||
|
||||
|
|
@ -118,6 +123,115 @@ class TeacherDashboardGrowthTest(unittest.IsolatedAsyncioTestCase):
|
|||
self.assertEqual(growth.trend, "up")
|
||||
self.assertEqual(growth.top_techniques, ["reflection"])
|
||||
self.assertEqual([point.session_no for point in growth.points], [1, 2])
|
||||
self.assertEqual(len(response.pending_reviews), 2)
|
||||
|
||||
async def test_dashboard_excludes_closed_session_reviews_from_pending_queue(self) -> None:
|
||||
learner_id = "00000000-0000-0000-0000-000000000111"
|
||||
open_session = _session(
|
||||
session_id="00000000-0000-0000-0000-00000000b111",
|
||||
session_no=1,
|
||||
learner_id=learner_id,
|
||||
score="neutral",
|
||||
rapport=0.1,
|
||||
technique="reflection",
|
||||
created_at=1_000.0,
|
||||
)
|
||||
closed_session = _session(
|
||||
session_id="00000000-0000-0000-0000-00000000b112",
|
||||
session_no=2,
|
||||
learner_id=learner_id,
|
||||
score="pos",
|
||||
rapport=0.5,
|
||||
technique="reflection",
|
||||
created_at=2_000.0,
|
||||
)
|
||||
principal = _principal()
|
||||
|
||||
with (
|
||||
patch.object(
|
||||
teacher.session_persistence,
|
||||
"list_sessions",
|
||||
AsyncMock(return_value=([open_session, closed_session], True)),
|
||||
),
|
||||
patch.object(
|
||||
teacher.session_persistence,
|
||||
"list_safety_alerts",
|
||||
AsyncMock(return_value=([], True)),
|
||||
),
|
||||
patch.object(
|
||||
teacher.session_persistence,
|
||||
"list_session_review_statuses",
|
||||
AsyncMock(
|
||||
return_value=(
|
||||
{
|
||||
closed_session.session_id: {
|
||||
"session_id": closed_session.session_id,
|
||||
"status": "closed",
|
||||
"note": "확인 완료",
|
||||
"reviewed_at": "2026-06-27T10:00:00Z",
|
||||
}
|
||||
},
|
||||
True,
|
||||
)
|
||||
),
|
||||
),
|
||||
):
|
||||
response = await teacher.teacher_dashboard(principal)
|
||||
|
||||
self.assertEqual([item.session_id for item in response.pending_reviews], [open_session.session_id])
|
||||
closed_summary = next(
|
||||
item for item in response.recent_sessions if item.session_id == closed_session.session_id
|
||||
)
|
||||
self.assertEqual(closed_summary.review_status, "closed")
|
||||
|
||||
async def test_teacher_can_mark_session_review_closed_with_note(self) -> None:
|
||||
principal = _principal()
|
||||
sess = _session(
|
||||
session_id="00000000-0000-0000-0000-00000000c111",
|
||||
session_no=1,
|
||||
learner_id="00000000-0000-0000-0000-000000000222",
|
||||
score="pos",
|
||||
rapport=0.5,
|
||||
technique="reflection",
|
||||
created_at=3_000.0,
|
||||
)
|
||||
|
||||
with (
|
||||
patch.object(
|
||||
teacher.session_persistence,
|
||||
"load_session",
|
||||
AsyncMock(return_value=sess),
|
||||
),
|
||||
patch.object(
|
||||
teacher.session_persistence,
|
||||
"save_session_review_status",
|
||||
AsyncMock(
|
||||
return_value=(
|
||||
{
|
||||
"session_id": sess.session_id,
|
||||
"reviewer_id": principal.user_id,
|
||||
"status": "closed",
|
||||
"note": "다음 회기에서 반영 질문을 늘리도록 지도",
|
||||
"reviewed_at": "2026-06-27T10:00:00Z",
|
||||
"updated_at": "2026-06-27T10:00:00Z",
|
||||
},
|
||||
True,
|
||||
)
|
||||
),
|
||||
) as save_status,
|
||||
):
|
||||
response = await teacher.update_session_review_status(
|
||||
sess.session_id,
|
||||
teacher.TeacherSessionReviewStatusRequest(
|
||||
status="closed",
|
||||
note="다음 회기에서 반영 질문을 늘리도록 지도",
|
||||
),
|
||||
principal,
|
||||
)
|
||||
|
||||
save_status.assert_awaited_once()
|
||||
self.assertEqual(response.status, "closed")
|
||||
self.assertIn("반영 질문", response.note)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue