Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from fastapi.testclient import TestClient | |
| from server.app import app | |
| def test_http_sessions_are_isolated() -> None: | |
| client = TestClient(app) | |
| session_a = {"X-Session-ID": "session-a"} | |
| session_b = {"X-Session-ID": "session-b"} | |
| reset_a = client.post("/reset", headers=session_a, json={"task_id": "adverse_event_triage"}) | |
| assert reset_a.status_code == 200 | |
| reset_b = client.post("/reset", headers=session_b, json={"task_id": "protocol_deviation_audit"}) | |
| assert reset_b.status_code == 200 | |
| state_a_before = client.get("/state", headers=session_a) | |
| state_b_before = client.get("/state", headers=session_b) | |
| assert state_a_before.status_code == 200 | |
| assert state_b_before.status_code == 200 | |
| assert state_a_before.json()["task_id"] == "adverse_event_triage" | |
| assert state_b_before.json()["task_id"] == "protocol_deviation_audit" | |
| assert state_a_before.json()["step_count"] == 0 | |
| assert state_b_before.json()["step_count"] == 0 | |
| step_a = client.post( | |
| "/step", | |
| headers=session_a, | |
| json={ | |
| "task_id": "adverse_event_triage", | |
| "ae_triage": { | |
| "severity_classification": "severe", | |
| "reporting_timeline": "15-day", | |
| "meddra_soc": "Cardiac disorders", | |
| "meddra_preferred_term": "Myocardial infarction", | |
| "is_serious": True, | |
| "rationale": "session isolation test action", | |
| }, | |
| }, | |
| ) | |
| assert step_a.status_code == 200 | |
| state_a_after = client.get("/state", headers=session_a) | |
| state_b_after = client.get("/state", headers=session_b) | |
| assert state_a_after.status_code == 200 | |
| assert state_b_after.status_code == 200 | |
| assert state_a_after.json()["step_count"] == 1 | |
| assert state_b_after.json()["step_count"] == 0 | |