import pytest from app.models.schemas import InputSchema from app.services.ml_service import ml_service def test_input_schema_validation(): # Test valid data valid_data = { "age": 30, "genre": "M", "revenu_mensuel": 5000, "statut_marital": "Célibataire", "departement": "R&D", "poste": "Ingénieur", "nombre_experiences_precedentes": 2, "nombre_heures_travailless": 40, "annee_experience_totale": 5, "annees_dans_l_entreprise": 2, "annees_dans_le_poste_actuel": 1, "satisfaction_employee_environnement": 3, "note_evaluation_precedente": 3, "niveau_hierarchique_poste": 2, "satisfaction_employee_nature_travail": 3, "satisfaction_employee_equipe": 4, "satisfaction_employee_equilibre_pro_perso": 3, "note_evaluation_actuelle": 3, "heure_supplementaires": "Non", "augementation_salaire_precedente": "10-15%", "nombre_participation_pee": 0, "nb_formations_suivies": 1, "nombre_employee_sous_responsabilite": 0, "distance_domicile_travail": 10, "niveau_education": 3, "domaine_etude": "Sciences", "ayant_enfants": "Non", "frequence_deplacement": "Rare", "annees_depuis_la_derniere_promotion": 1, "annes_sous_responsable_actuel": 1 } schema = InputSchema(**valid_data) assert schema.age == 30 assert schema.genre == "M" # Test invalid data (missing field) invalid_data = valid_data.copy() del invalid_data["age"] with pytest.raises(ValueError): InputSchema(**invalid_data) def test_model_loading(): assert ml_service.model is not None assert ml_service.expected_features is not None