Files
familienarchiv/nlp-service/test_main.py
2026-06-07 10:29:32 +02:00

53 lines
1.6 KiB
Python

import pytest
from fastapi.testclient import TestClient
@pytest.fixture(scope="session")
def client():
from main import app
with TestClient(app) as c:
yield c
def test_health(client):
response = client.get("/health")
assert response.status_code == 200
assert response.json() == {"status": "ok"}
def test_parse_returns_200_with_all_fields(client):
response = client.post("/parse", json={"query": "Briefe vor 1920", "lang": "de"})
assert response.status_code == 200
data = response.json()
assert "personNames" in data
assert "personRole" in data
assert data["personRole"] in ("sender", "receiver", "any")
assert "dateFrom" in data
assert "dateTo" in data
assert "keywords" in data
assert "rawQuery" in data
assert data["rawQuery"] == "Briefe vor 1920"
assert data["dateTo"] == "1920-12-31"
def test_parse_unknown_lang_returns_422(client):
response = client.post("/parse", json={"query": "test", "lang": "fr"})
assert response.status_code == 422
def test_parse_missing_query_returns_422(client):
response = client.post("/parse", json={"lang": "de"})
assert response.status_code == 422
def test_parse_all_languages(client):
cases = [
("de", "Briefe vor 1920"),
("en", "letters before 1920"),
("es", "cartas antes de 1920"),
]
for lang, query in cases:
response = client.post("/parse", json={"query": query, "lang": lang})
assert response.status_code == 200, f"Failed for lang={lang}"
assert response.json()["dateTo"] == "1920-12-31", f"Wrong dateTo for lang={lang}"