Spaces:
Sleeping
Sleeping
| def test_high_risk_ru(client, device_header): | |
| r = client.post( | |
| "/v1/analyze/text", | |
| json={"text": "Срочно сообщите код из СМС, иначе ваш счёт будет заблокирован!"}, | |
| headers=device_header, | |
| ) | |
| assert r.status_code == 200, r.text | |
| body = r.json() | |
| assert body["risk_level"] == "high" | |
| types = {f["type"] for f in body["detected_features"]} | |
| assert {"urgency", "data_request", "threat"} <= types | |
| assert body["language"] == "ru" | |
| def test_high_risk_kk(client, device_header): | |
| r = client.post( | |
| "/v1/analyze/text", | |
| json={"text": "Шұғыл түрде SMS кодын айтыңыз, әйтпесе шотыңыз бұғатталады!"}, | |
| headers=device_header, | |
| ) | |
| assert r.status_code == 200 | |
| body = r.json() | |
| assert body["language"] == "kk" | |
| assert body["risk_level"] == "high" | |
| types = {f["type"] for f in body["detected_features"]} | |
| assert "urgency" in types | |
| assert "data_request" in types | |
| def test_low_risk_neutral_ru(client, device_header): | |
| r = client.post( | |
| "/v1/analyze/text", | |
| json={"text": "Привет, как дела? Завтра встретимся в кафе."}, | |
| headers=device_header, | |
| ) | |
| assert r.status_code == 200 | |
| body = r.json() | |
| assert body["risk_level"] == "low" | |
| assert body["detected_features"] == [] | |
| def test_low_risk_neutral_kk(client, device_header): | |
| r = client.post( | |
| "/v1/analyze/text", | |
| json={"text": "Сәлем, қалайсың? Ертең кездесейік."}, | |
| headers=device_header, | |
| ) | |
| assert r.status_code == 200 | |
| assert r.json()["risk_level"] == "low" | |
| def test_missing_device_id(client): | |
| r = client.post("/v1/analyze/text", json={"text": "тест"}) | |
| assert r.status_code == 422 | |
| assert r.json()["error"] == "VALIDATION_ERROR" | |
| def test_invalid_device_id(client): | |
| r = client.post( | |
| "/v1/analyze/text", | |
| json={"text": "тест"}, | |
| headers={"X-Device-Id": "not-a-uuid"}, | |
| ) | |
| assert r.status_code == 400 | |
| assert r.json()["error"] == "MISSING_DEVICE_ID" | |
| def test_validation_empty_text(client, device_header): | |
| r = client.post("/v1/analyze/text", json={"text": ""}, headers=device_header) | |
| assert r.status_code == 422 | |
| assert r.json()["error"] == "VALIDATION_ERROR" | |
| def test_validation_oversized_text(client, device_header): | |
| r = client.post( | |
| "/v1/analyze/text", | |
| json={"text": "a" * 6000}, | |
| headers=device_header, | |
| ) | |
| assert r.status_code == 422 | |
| assert r.json()["error"] == "VALIDATION_ERROR" | |