meta-hack / tests /test_session_isolation.py
vvinayakkk's picture
Sync full clinical-trial-triage project into Space
404c45f
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