Spaces:
Sleeping
Sleeping
| 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 | |