Spaces:
Sleeping
Sleeping
| from fastapi.testclient import TestClient | |
| from api.app import app, get_moderator | |
| from api.content_moderator import ContentModerator | |
| def mock_classifier(text): | |
| if text == "Hello": | |
| return [{"label": "SAFE", "score": 0.99}] | |
| return [{"label": "UNSAFE", "score": 0.99}] | |
| def get_mock_moderator(): | |
| return ContentModerator(mock_classifier) | |
| app.dependency_overrides[get_moderator] = get_mock_moderator | |
| client = TestClient(app) | |
| def test_health(): | |
| response = client.get("/health") | |
| assert response.status_code == 200 | |
| assert response.json() == {"status": "ok"} | |
| def test_predict_valid_text(): | |
| response = client.post("/predict", json={"text": "Hello"}) | |
| assert response.status_code == 200 | |
| data = response.json() | |
| assert data["label"] == "SAFE" | |
| assert data["score"] == 0.99 | |
| def test_predict_normalization(): | |
| response = client.post("/predict", json={"text": "Hello"}) | |
| assert response.status_code == 200 | |
| assert response.json()["label"] == "SAFE" | |
| def test_predict_empty_text(): | |
| response = client.post("/predict", json={"text": ""}) | |
| assert response.status_code == 422 | |
| def test_predict_whitespace_only(): | |
| response = client.post("/predict", json={"text": " "}) | |
| assert response.status_code == 422 | |