Tests
Création d'un test
Sous python, il existe plusieurs packages pour créer des tests. Le plus connue et surtout le plus simple d'utilisation est pytest.
La convention pour créer un test est d'ajouter un fichier commençant par le mot test_. Cette convention va permettre à pytest d'exécuter le test créé sans avoir à l'importer dans un fichier.
Configuration de pytest
L'automatisation de l'exécution des tests et notamment la convention de nommage s'effectue grâce au fichier pytest.ini. Consultez-le si cela vous intéresse.
En ce qui concerne le nom de la fonction de test, elle doit aussi commencer par test (règle interne). Ensuite, vous pouvez appeler les différentes fonctions a tester depuis le fichier de test.
Ne pas utiliser assert
assert est déconseillé pour des raisons de sécurité. Ce problème de sécurité sera détecté par bandit et vous empêchera de faire un commit.
if not (response.status_code == 200):
raise AssertionError("Le statut code n'est pas correct.")
Exemple
def test_read_root():
"""Test read root route."""
response = client.get("/")
if not (response.status_code == 200):
raise AssertionError("Le status code n'est pas correct.")
if not (response.json() == {"Hello": "World"}):
raise AssertionError("La réponse ne contient pas les bonnes données.")
Tester votre test
Pour démarrer votre test, rien de plus simple. Vous pouvez simplement faire la commande à la racine du projet :
python -m pytest
Cette commande est très utile, mais si le nombre de tests devient trop volumineux, il peut être long d'attendre que votre test passe.
Si vous souhaitez tester uniquement le vôtre :
python -m pytest app\generation_nft_api\tests\test_main.py
Le désavantage de cette commande est de connaître obligatoirement le chemin du fichier.