Spaces:
Sleeping
Sleeping
File size: 1,603 Bytes
cc3cf41 56aba02 cc3cf41 56aba02 cc3cf41 56aba02 cc3cf41 56aba02 cc3cf41 | 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 | from fastapi.testclient import TestClient
from api.main import app
import numpy as np
client = TestClient(app)
class DummyModel:
def predict_proba(self, X):
return np.array([[0.9, 0.1]])
VALID_BODY = {
"DAYS_BIRTH": -12000,
"DAYS_EMPLOYED": -2500,
"CODE_GENDER": "M",
"AMT_INCOME_TOTAL": 180000,
"AMT_CREDIT": 400000,
"AMT_ANNUITY": 20000,
"AMT_GOODS_PRICE": 350000,
"EXT_SOURCE_2": 0.65,
"EXT_SOURCE_3": 0.45,
"CREDIT_GOODS_RATIO": 1.14,
"DEBT_CREDIT_RATIO": 0.05,
"ANNUITY_INCOME_RATIO": 0.11
}
def test_predict_ok(monkeypatch):
from api import main
monkeypatch.setattr(main, "_model", DummyModel())
r = client.post("/predict", json=VALID_BODY)
assert r.status_code == 200
def test_missing_field_returns_422():
bad = dict(VALID_BODY)
bad.pop("AMT_CREDIT")
r = client.post("/predict", json=bad)
assert r.status_code == 422
def test_invalid_gender_returns_422():
bad = dict(VALID_BODY)
bad["CODE_GENDER"] = "X"
r = client.post("/predict", json=bad)
assert r.status_code == 422
def test_income_zero_returns_422():
bad = dict(VALID_BODY)
bad["AMT_INCOME_TOTAL"] = 0
r = client.post("/predict", json=bad)
assert r.status_code == 422
def test_birth_positive_returns_422():
bad = dict(VALID_BODY)
bad["DAYS_BIRTH"] = 10
r = client.post("/predict", json=bad)
assert r.status_code == 422
def test_too_young_or_age_returns_422():
bad = dict(VALID_BODY)
bad["DAYS_BIRTH"] = -10
r = client.post("/predict", json=bad)
assert r.status_code == 422
|