feat: Amorçage des tests automatiques [#64]

This commit is contained in:
N3WT DE COMPET
2025-06-05 17:20:59 +02:00
parent 0064b8d35a
commit 0a2b23f260
5 changed files with 229 additions and 1 deletions

View File

@ -0,0 +1,59 @@
# Documentation des tests automatiques
Ce document décrit la structure et lutilisation du starter de tests automatiques pour valider tous les endpoints exposés par les fichiers `urls.py` des applications Django du Back-End.
## Objectif
- Vérifier automatiquement que chaque route définie dans le projet répond bien à une requête HTTP (statut attendu : 200, 401, 403, 404).
- Permettre une validation rapide de la couverture des endpoints lors de chaque pipeline CI.
## Structure
- Le fichier principal est `Back-End/test_all_endpoints.py`.
- Ce test utilise `pytest` et `pytest-django` pour parcourir toutes les routes du projet et effectuer une requête GET anonyme.
- Les routes dynamiques (avec paramètres) sont ignorées dans ce starter.
## Exécution
1. Installer les dépendances si besoin :
```sh
pip install pytest pytest-django djangorestframework
```
2. Lancer les tests :
```sh
pytest Back-End/test_all_endpoints.py
```
## Intégration CI
- Ajouter la commande de test dans votre pipeline CI (GitHub Actions, GitLab CI, Jenkins, etc.) :
```sh
pytest Back-End/test_all_endpoints.py
```
## Personnalisation
- Pour tester les routes nécessitant une authentification ou des paramètres, compléter le test avec des cas spécifiques.
- Pour chaque nouvelle route, le test sexécutera automatiquement.
## Ajout
- Ajout d'un fichier de tests automatiques dédié à Auth (`test_auth_endpoints.py`) pour tester tous les endpoints Auth (GET, dynamiques, login JWT, accès protégé, structure JSON).
- Les tests créent un utilisateur et un profilRole de test, réalisent un login, et vérifient les accès aux endpoints principaux, y compris les routes dynamiques et protégées.
## Utilisation
- Lancer les tests avec :
```bash
pytest --json-report --json-report-file=tests_automatiques.json
```
- Le rapport inclura les résultats détaillés pour chaque endpoint Auth.
## Extension
- Étendre sur le même modèle pour les autres applications (School, Subscriptions, etc.)
- Ajouter des tests POST/PUT/DELETE et des cas derreur/permissions.
---
Pour toute question ou évolution, se référer au ticket associé.