File size: 1,349 Bytes
9f0dbb9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from fastapi.testclient import TestClient
from src.api.server import app

client = TestClient(app)

def test_health():
    r = client.get("/health")
    assert r.status_code == 200
    assert r.json()["status"] == "ok"

def test_predict_one_minimal():
    sample = {
        "age": 41,
        "genre": "F",
        "revenu_mensuel": 6000,
        "statut_marital": "Célibataire",
        "departement": "Consulting",
        "poste": "Consultant",
        "nombre_experiences_precedentes": 6,
        "annees_dans_le_poste_actuel": 2,
        "note_evaluation_precedente": 3,
        "note_evaluation_actuelle": 3,
        "heure_supplementaires": 0,
        "augementation_salaire_precedente": 12,
        "nombre_participation_pee": 1,
        "nb_formations_suivies": 2,
        "distance_domicile_travail": 5,
        "niveau_education": 2,
        "annees_depuis_la_derniere_promotion": 1,
        "annes_sous_responsable_actuel": 2,
        "satisfaction_globale": 3.0,
        "exp_moins_3_years": 0,
        "domaine_etude": "Infra & Cloud",
        "frequence_deplacement": "Occasionnel"
    }
    r = client.post("/predict_one", json=sample)
    assert r.status_code == 200
    body = r.json()
    assert "proba" in body and "pred" in body and "threshold" in body
    assert 0.0 <= body["proba"] <= 1.0
    assert body["pred"] in (0, 1)