File size: 1,689 Bytes
044baa7
 
180a7cc
044baa7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180a7cc
044baa7
180a7cc
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import ValidationError
from app.main import PredictionRawData
from app.main import get_db

def test_schema_accepts_valid_age():
    data = {
        "age": 30,
        "revenu_mensuel": 2500.0,
        "statut_marital": "Marié(e)",
        "departement": "IT",
        "poste": "Développeur",
        "annee_experience_totale": 5,
        "annees_dans_l_entreprise": 2,
        "annees_dans_le_poste_actuel": 2,
        "satisfaction_employee_environnement": 3,
        "note_evaluation_precedente": 4.2,
        "satisfaction_employee_nature_travail": 4,
        "satisfaction_employee_equipe": 4,
        "satisfaction_employee_equilibre_pro_perso": 3,
        "note_evaluation_actuelle": 4.5,
        "heure_supplementaires": "Oui",
        "augementation_salaire_precedente": 2.0,
        "nombre_participation_pee": 1,
        "frequence_deplacement": "Rare",
        "annes_sous_responsable_actuel": 1
    }

    obj = PredictionRawData(**data)
    assert obj.age == 30

def test_schema_rejects_invalid_age():
    # on met une valeur FAUSSE juste pour tester l'erreur
    data = {
        "age": "pas_un_nombre"
    }

    try:
        PredictionRawData(**data)
        assert False  # si ça ne plante pas, erreur
    except ValidationError:
        assert True   # si ça plante comme prévu, ok



def test_get_db():
    gen = get_db()          # on récupère le générateur
    db = next(gen)          # exécute "db = SessionLocal()" et "yield db"
    assert db is not None   # couvre la partie try / yield
    try:
        next(gen)           # va provoquer StopIteration
    except StopIteration:
        pass                # couvre le finally: db.close()