futurisys-api / tests /test_schema_prediction_raw_data.py
PCelia's picture
Upload folder using huggingface_hub
180a7cc verified
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()