Spaces:
Running on Zero
Running on Zero
| import importlib | |
| from typing import Any | |
| def test_protocol_guidance_returns_json_and_evidence_panel(monkeypatch: Any) -> None: | |
| app = importlib.import_module("app") | |
| retrieved_cards = [ | |
| { | |
| "card_id": "PED-DEHYD-RED-FLAGS-v1", | |
| "title": "Pediatric dehydration red flags", | |
| "score": 8.5, | |
| "source": "json_fallback", | |
| "snippet": "Reported lethargy matched red flag wording.", | |
| "card": { | |
| "card_id": "PED-DEHYD-RED-FLAGS-v1", | |
| "title": "Pediatric dehydration red flags", | |
| "escalation_criteria": [ | |
| "Any listed red flag requires urgent or emergency escalation according to local protocol." | |
| ], | |
| "safety_boundary": ( | |
| "Prototype protocol navigation card for trained-responder review only." | |
| ), | |
| }, | |
| }, | |
| { | |
| "card_id": "SAFETY-BOUNDARIES-v1", | |
| "title": "Safety boundaries", | |
| "score": 3.0, | |
| "source": "json_fallback", | |
| "card": { | |
| "card_id": "SAFETY-BOUNDARIES-v1", | |
| "title": "Safety boundaries", | |
| "safety_boundary": "Prototype evidence only; not a medical device.", | |
| }, | |
| }, | |
| ] | |
| monkeypatch.setattr(app, "search_protocol_cards", lambda query: retrieved_cards) | |
| json_cards, evidence_panel = app._retrieve_with_evidence_ui( | |
| { | |
| "setting": "shelter clinic", | |
| "chief_concern": "vomiting and dehydration concern", | |
| "symptoms": "lethargic, very dry mouth", | |
| } | |
| ) | |
| assert json_cards == retrieved_cards | |
| assert "Prototype evidence/source material" in evidence_panel | |
| assert "PED-DEHYD-RED-FLAGS-v1" in evidence_panel | |
| assert "Pediatric dehydration red flags" in evidence_panel | |
| assert "urgent or emergency escalation according to local protocol" in evidence_panel | |
| assert "score=8.50" in evidence_panel | |
| assert "Reported lethargy matched red flag wording." in evidence_panel | |
| assert "SAFETY-BOUNDARIES-v1" in evidence_panel | |
| assert "not a medical device" in evidence_panel | |