Spaces:
Sleeping
Sleeping
Download tests/conftest.py from rriviere/attrition-api-dev: direct link, hf CLI and curl.
- Browser
- Download file 1.69 kB
-
https://huggingface.co/spaces/rriviere/attrition-api-dev/resolve/main/tests/conftest.py
- Command line
-
hf download hf://spaces/rriviere/attrition-api-dev/tests/conftest.py
-
curl -L -o conftest.py https://huggingface.co/spaces/rriviere/attrition-api-dev/resolve/main/tests/conftest.py
1.69 kB
| import pytest | |
| from unittest.mock import MagicMock, patch | |
| from fastapi.testclient import TestClient | |
| from app.main import app | |
| from app.db.session import get_db | |
| TEST_API_KEY = "test-secret-key" | |
| VALID_PAYLOAD = { | |
| "age": 35, "genre": "M", "statut_marital": "Marié(e)", | |
| "poste": "Consultant", "domaine_etude": "Infra & Cloud", | |
| "niveau_education": 3, "departement": "Ventes", "niveau_hierarchique_poste": 2, | |
| "nombre_experiences_precedentes": 2, | |
| "annee_experience_totale": 10, "annees_dans_l_entreprise": 5, | |
| "annees_dans_le_poste_actuel": 2, "annees_sous_responsable_actuel": 3, | |
| "annees_depuis_la_derniere_promotion": 1, | |
| "note_evaluation_actuelle": 3, "note_evaluation_precedente": 3, | |
| "augmentation_salaire_precedente": 15, "nb_formations_suivies": 2, | |
| "nombre_participation_pee": 1, | |
| "satisfaction_employee_environnement": 3, | |
| "satisfaction_employee_nature_travail": 4, | |
| "satisfaction_employee_equipe": 3, | |
| "satisfaction_employee_equilibre_pro_perso": 2, | |
| "heure_supplementaires": "Non", "frequence_deplacement": "Occasionnel", | |
| "distance_domicile_travail": 10, "revenu_mensuel": 5000, | |
| } | |
| def override_get_db(): | |
| yield MagicMock() | |
| app.dependency_overrides[get_db] = override_get_db | |
| def client(): | |
| mock_pipeline = MagicMock() | |
| # Simule predict_proba → [[proba_reste, proba_quitte]] | |
| # 0.3 < seuil 0.40 → prédiction "Reste" | |
| mock_pipeline.predict_proba.return_value = [[0.70, 0.30]] | |
| with patch("app.main.load_pipeline", return_value=(mock_pipeline, 0.40)), \ | |
| patch.dict("os.environ", {"API_KEY": TEST_API_KEY}): | |
| with TestClient(app) as c: | |
| yield c | |