WorldDisasterLM-8B / tests /test_api.py
drdeveloper88's picture
Upload WorldDisasterLM-8B source code: FastAPI backend, training pipeline, 11-language support
495526b
Raw
History Blame Contribute Delete
1.81 kB
from fastapi.testclient import TestClient
from backend.app.main import app
client = TestClient(app)
def test_health() -> None:
response = client.get("/health")
assert response.status_code == 200
payload = response.json()
assert payload["status"] == "ok"
def test_chat_endpoint() -> None:
response = client.post(
"/v1/chat",
json={
"messages": [{"role": "user", "content": "What is the first step during flood evacuation?"}],
"language": "English",
"region": "global",
},
)
assert response.status_code == 200
assert "answer" in response.json()
def test_chat_nepali_language() -> None:
"""Verify Nepali language requests return a Nepali-language answer."""
response = client.post(
"/v1/chat",
json={
"messages": [{"role": "user", "content": "भूकम्पको बेला के गर्ने?"}],
"language": "Nepali",
"region": "Nepal",
},
)
assert response.status_code == 200
data = response.json()
assert "answer" in data
# Response should contain Devanagari characters for Nepali output
assert any("\u0900" <= ch <= "\u097F" for ch in data["answer"]), (
"Expected Devanagari script in Nepali response"
)
def test_chat_nepali_confidence_range() -> None:
"""Nepali response confidence must be in valid [0, 1] range."""
response = client.post(
"/v1/chat",
json={
"messages": [{"role": "user", "content": "बाढीको बेला के गर्ने?"}],
"language": "Nepali",
"region": "Nepal",
},
)
assert response.status_code == 200
data = response.json()
assert 0.0 <= data["confidence"] <= 1.0