Spaces:
Sleeping
Sleeping
| """Unit tests for backup rule priority selection.""" | |
| from app.backup_replies import backup_reply, select_backup_rule | |
| def test_court_beats_default() -> None: | |
| rule = select_backup_rule("I opened court again", []) | |
| assert rule["id"] == "court" | |
| def test_tag_match_rerun() -> None: | |
| rule = select_backup_rule("something vague", ["rerun"]) | |
| assert rule["id"] == "rerun" | |
| def test_default_and_server_pick() -> None: | |
| text, rule_id = backup_reply( | |
| "ordinary day", | |
| [], | |
| [{"remedy_key": "walk outside", "pick": 0.5, "n": 5, "p_helped": 0.8}], | |
| data_thin=True, | |
| ) | |
| assert rule_id == "default" | |
| assert "REMEDY: walk outside" in text | |
| assert "DATA_THIN: true" in text | |
| assert text.startswith("LOOP:") | |
| def test_crisis_ignores_server_pick() -> None: | |
| text, rule_id = backup_reply( | |
| "I want to kill myself", | |
| [], | |
| [{"remedy_key": "walk outside", "pick": 0.5, "n": 5, "p_helped": 0.8}], | |
| data_thin=False, | |
| ) | |
| assert rule_id == "crisis" | |
| assert "walk outside" not in text | |
| assert "crisis" in text.lower() | |
| def test_high_intensity_forces_interrupt_not_label() -> None: | |
| text, rule_id = backup_reply( | |
| "I tried labeling", | |
| ["shame"], | |
| [{"remedy_key": "Labeling", "pick": 0.9, "n": 20, "p_helped": 0.2}], | |
| data_thin=False, | |
| intensity=8, | |
| ) | |
| assert rule_id == "high_intensity_fse" | |
| assert "Labeling" not in text | |
| assert "interrupt" in text.lower() or "Leave the room" in text | |