A newer version of the Gradio SDK is available:
5.41.1
✅ Tests unitaires & couverture
Ce projet dispose de tests automatisés pour valider les principales fonctionnalités :
📂 Fichiers de test
Fichier | Description |
---|---|
tests/test_handler.py |
Vérifie le bon fonctionnement de la fonction predict() en mode zero-shot et few-shot . |
tests/test_interface.py |
Teste l'interface Gradio, les comportements inattendus (entrée vide, modèle invalide), et la création de l'interface. |
🧪 Lancer les tests
python -m pytest --cov=app --cov-report=term-missing
Ce qui génère un rapport de couverture avec les lignes non couvertes :
Name Stmts Miss Cover Missing
------------------------------------------------
app/handler.py 16 0 100%
app/interface.py 7 2 71% 17-18
------------------------------------------------
TOTAL 23 2 91%
🌟 Les lignes 17-18 non couvertes correspondent à l’exécution directe de l’interface dans le fichier
main.py
. Ces lignes ne sont volontairement pas testées car elles concernent le lancement interactif de l'application (iface.launch()
), hors du périmètre des tests unitaires.
🚫 Hook pre-push
automatique
Pour garantir la stabilité du dépôt, un hook Git pre-push
a été mis en place.
🧹 Il exécute automatiquement les tests avant chaque git push
.
Exemple .git/hooks/pre-push
#!/bin/sh
echo "🔍 Exécution des tests unitaires avant le push..."
python -m pytest --cov=app --cov-report=term-missing
if [ $? -ne 0 ]; then
echo "❌ Push bloqué : les tests ont échoué."
exit 1
fi
🔧 Installation manuelle
- Crée un fichier
.git/hooks/pre-push
si ce n’est pas déjà fait, - Colle le script ci-dessus,
- Rends-le exécutable :
chmod +x .git/hooks/pre-push