Tests¶
Cette section décrit les tests automatisés réalisés pour valider les différentes parties de l'API t404.xyz, incluant les tests unitaires, d’intégration, d’authentification et de permissions.
Tests unitaires sur les modèles¶
- TablePermission : vérifie la création correcte des permissions et leur représentation textuelle.
- ApiKey : teste la génération automatique de clés ainsi que la validation de l’état actif et expiration.
Tests d’intégration des ViewSets¶
- Teste que les méthodes
GETsur la liste des items sont accessibles sans authentification. - Vérifie que pour les requêtes
POST, la présence d’une clé API valide avec permission est nécessaire. - Scénarios d’absence de clé, clé sans permission, et clé avec permission permettant le succès.
Tests des mécanismes d’authentification et permissions¶
- Assure que l’authentification par clé API fonctionne et relie la clé à l’utilisateur correct.
- Autorise les méthodes sécurisées (GET, HEAD, OPTIONS) publiquement.
- Refuse les opérations d’écriture sans clé ou sans droits adéquats.
- Refuse l’accès si la clé API n’a pas la permission sur la table ciblée.
Exécution des tests¶
Ces tests sont définis à l’aide de django.test.TestCase et peuvent être exécutés avec la commande :
python manage.py test
Le framework affiche un rapport détaillé des succès (PASS) et des échecs (FAILED).
Cette couverture permet d’assurer la robustesse des fonctionnalités essentielles de l’API, notamment la sécurité et la conformité métier.