EpiADR-Net / tests /test_api.py
ADjayantan
Fix GitHub Actions CI: Resolved ruff linter check and updated CI workflow flags
5d4afe2
Raw
History Blame Contribute Delete
1.36 kB
from fastapi.testclient import TestClient
from api import app
client = TestClient(app)
def test_api_root_and_health():
res_root = client.get("/")
assert res_root.status_code == 200
assert res_root.json()["service"] == "EpiADR-Net REST Microservice"
res_health = client.get("/health")
assert res_health.status_code == 200
assert res_health.json()["status"] == "healthy"
def test_api_organs_and_adr_classes():
res_organs = client.get("/organs")
assert res_organs.status_code == 200
assert "Liver" in res_organs.json()["supported_organs"]
res_adr = client.get("/adr-classes")
assert res_adr.status_code == 200
assert len(res_adr.json()["meddra_terms"]) == 10
def test_api_predict_endpoint():
payload = {
"smiles": "CC(=O)NC1=CC=C(O)C=C1",
"organ": "Liver",
"mc_samples": 5
}
res = client.post("/predict", json=payload)
assert res.status_code == 200
data = res.json()
assert data["conditioned_organ"] == "Liver"
assert len(data["predictions"]) == 10
assert "xai_explanation" in data
def test_api_explain_endpoint():
payload = {
"smiles": "CC(=O)NC1=CC=C(O)C=C1",
"top_k": 3
}
res = client.post("/explain", json=payload)
assert res.status_code == 200
data = res.json()
assert len(data["top_toxic_hotspots"]) <= 3