feat: crisis message after the test and non-blocking; weapon answer triggers nothing; ЕМИАС demo = Никита
CI / ruff · pytest (pull_request) Successful in 2m33s
CI / ruff · pytest (pull_request) Successful in 2m33s
- CRISIS_BLOCKING (default off for the demo): a crisis no longer locks the dialog; the message and the doctor's acute alert still happen. The clinical protocol (blocking, immediate stop) stays behind the flag and keeps its tests. - Crisis signals inside a questionnaire (intake red flags, high C-SSRS, PHQ-9 item 9) no longer stop it: the test is finished and the crisis message comes at the end; the doctor's alert is raised at once/at the end. - Weapon access: asked and stored, triggers nothing (rule disabled, no red flag, no safety block). - ЕМИАС demo persona is «Никита В.»; the one-click demo stays «Андрей С.». Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -223,10 +223,9 @@ async def test_weapon_access_from_dialog_facts(db: MemoryNotifier) -> None:
|
||||
assert snap is not None and snap.weapon_access is True
|
||||
await scale("cssrs_screen", 3, severity="moderate", scheduled=False)
|
||||
actions = await monitoring.RuleMonitoring().after_data_change(TOKEN)
|
||||
assert {a.code for a in actions if a.type == "crisis"} == {"weapon_access_risk"}
|
||||
plan = next(a for a in actions if a.type == "show_safety_plan")
|
||||
assert plan.params["block"] == "means_restriction"
|
||||
assert await color() == "red"
|
||||
# Team decision 2026-10-04: weapon access is stored but triggers nothing (no crisis, no safety block).
|
||||
assert "weapon_access_risk" not in {a.code for a in actions}
|
||||
assert not any(a.type == "show_safety_plan" and a.params.get("block") == "means_restriction" for a in actions)
|
||||
|
||||
|
||||
async def test_snapshot_mapping_and_unknown_patient(db: MemoryNotifier) -> None:
|
||||
|
||||
Reference in New Issue
Block a user