File size: 3,690 Bytes
594db4d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | """Tests for the FastAPI endpoints."""
# ββ GET /health ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def test_health_returns_ok(client):
resp = client.get("/health")
assert resp.status_code == 200
data = resp.json()
assert data["status"] == "ok"
assert isinstance(data["available_models"], list)
assert len(data["available_models"]) >= 1
def test_health_lists_distilbert(client):
resp = client.get("/health")
models = resp.json()["available_models"]
assert "distilbert" in models
# ββ POST /fix-newlines βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def test_fix_newlines_returns_fixed_text(client):
resp = client.post("/fix-newlines", json={"text": "Hello world. This is a test."})
assert resp.status_code == 200
data = resp.json()
assert "fixed_text" in data
assert "model_used" in data
assert isinstance(data["fixed_text"], str)
def test_fix_newlines_returns_model_name(client):
resp = client.post("/fix-newlines", json={"text": "Hello world."})
assert resp.json()["model_used"] == "bert"
def test_fix_newlines_empty_text(client):
resp = client.post("/fix-newlines", json={"text": ""})
assert resp.status_code == 200
assert resp.json()["fixed_text"] == ""
def test_fix_newlines_missing_text_returns_422(client):
resp = client.post("/fix-newlines", json={})
assert resp.status_code == 422
def test_fix_newlines_multiline_input(client):
text = "First sentence.\nSecond sentence.\n\nNew paragraph."
resp = client.post("/fix-newlines", json={"text": text})
assert resp.status_code == 200
assert len(resp.json()["fixed_text"]) > 0
def test_fix_newlines_preserves_content(client):
text = "The quick brown fox jumps over the lazy dog. It was a sunny day."
resp = client.post("/fix-newlines", json={"text": text})
fixed = resp.json()["fixed_text"]
# all original words should be present
for word in ["quick", "brown", "fox", "sunny", "day"]:
assert word in fixed
# ββ POST /fix-newlines-all-models ββββββββββββββββββββββββββββββββββββββββββββ
def test_fix_newlines_all_models(client):
resp = client.post("/fix-newlines-all-models", json={"text": "Hello world. This is a test."})
assert resp.status_code == 200
data = resp.json()
assert "results" in data
assert len(data["results"]) >= 1
def test_fix_newlines_all_models_has_model_names(client):
resp = client.post("/fix-newlines-all-models", json={"text": "Hello world."})
names = [r["model_name"] for r in resp.json()["results"]]
assert "distilbert" in names
def test_fix_newlines_all_models_has_fixed_text(client):
resp = client.post("/fix-newlines-all-models", json={"text": "Hello world. Testing."})
for result in resp.json()["results"]:
assert "fixed_text" in result
assert isinstance(result["fixed_text"], str)
assert len(result["fixed_text"]) > 0
def test_fix_newlines_all_models_empty_text(client):
resp = client.post("/fix-newlines-all-models", json={"text": ""})
assert resp.status_code == 200
for result in resp.json()["results"]:
assert result["fixed_text"] == ""
def test_fix_newlines_all_models_missing_text_returns_422(client):
resp = client.post("/fix-newlines-all-models", json={})
assert resp.status_code == 422
|