ToxiCheck / tests /README.md
Tbruand
docs(test): ajoute un README expliquant les tests et le hook pre-push
b5cc534

A newer version of the Gradio SDK is available: 5.41.1

Upgrade

✅ 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

  1. Crée un fichier .git/hooks/pre-push si ce n’est pas déjà fait,
  2. Colle le script ci-dessus,
  3. Rends-le exécutable :
chmod +x .git/hooks/pre-push