veritas / tests /test_api.py
sushildalavi's picture
feat(ranking): enable live cross-encoder reranking backend
8eb009a verified
Raw
History Blame Contribute Delete
2.21 kB
from fastapi.testclient import TestClient
from serving.api import app
client = TestClient(app)
def test_health_endpoint() -> None:
response = client.get("/health")
assert response.status_code == 200
payload = response.json()
assert payload["status"] == "ok"
assert "verifier_backend" in payload
assert "fallback_used" in payload
assert "retrieval_backend" in payload
assert "embedding_model" in payload
assert "retrieval_fallback_used" in payload
assert "reranker_backend" in payload
assert "cross_encoder_model" in payload
assert "reranker_fallback_used" in payload
assert "checkpoint_path" in payload
def test_verify_endpoint_rejects_empty_claim() -> None:
response = client.post("/verify", json={"claim": " ", "top_k": 5})
assert response.status_code == 422
def test_verify_endpoint_returns_grounded_response() -> None:
response = client.post("/verify", json={"claim": "Paris is in France", "top_k": 2})
assert response.status_code == 200
payload = response.json()
assert payload["verdict"] in {"SUPPORTED", "REFUTED", "NOT ENOUGH INFO"}
assert "explanation" in payload
assert isinstance(payload["evidence"], list)
assert "backend_used" in payload
assert "retrieval_backend" in payload
assert "retrieval_fallback_used" in payload
assert "reranker_backend" in payload
assert "reranker_fallback_used" in payload
def test_metrics_endpoint_reports_snapshot() -> None:
client.post("/verify", json={"claim": "Paris is in France", "top_k": 2})
response = client.get("/metrics")
assert response.status_code == 200
payload = response.json()
assert "requests" in payload
assert "cache_entries" in payload
assert "average_latency_ms" in payload
assert "p95_latency_ms" in payload
assert "verifier_backend" in payload
assert "retrieval_backend" in payload
assert "embedding_model" in payload
assert "retrieval_fallback_used" in payload
assert "reranker_backend" in payload
assert "cross_encoder_model" in payload
assert "reranker_fallback_used" in payload
assert "checkpoint_path" in payload
assert "backend_usage_counts" in payload