in

Mise en place de projets Python : Partie III | par Johannes Schmidt


MAÎTRISER L’ART DE LA MISE EN PLACE DE PROJETS EN PYTHON : UN GUIDE ÉTAPE PAR ÉTAPE

Que vous soyez un développeur expérimenté ou que vous commenciez tout juste à apprendre le langage de programmation Python, il est important de savoir comment construire des projets robustes et maintenables. Ce tutoriel vous guidera à travers le processus de création d’un projet Python en utilisant certains des outils les plus populaires et efficaces de l’industrie. Vous apprendrez à utiliser GitHub et GitHub Actions pour la gestion de version et l’intégration continue, ainsi que d’autres outils pour les tests, la documentation, l’emballage et la distribution du projet.

INSPIRÉ PAR LES RESSOURCES DE RÉFÉRENCE

Ce tutoriel est inspiré de ressources telles que « Hypermodern Python » et « Best Practices for a new Python project ». Cependant, ce n’est pas la seule façon de faire les choses et vous pourriez avoir des préférences ou des opinions différentes. Le tutoriel est destiné aux débutants, mais couvre également certains sujets avancés. Dans chaque section, vous automatiserez certaines tâches et ajouterez des badges à votre projet pour montrer votre progression et vos réalisations.

LE CONTENU DU TUTORIEL

Le référentiel pour cette série peut être trouvé à github.com/johschmidt42/python-project-johannes. Les outils utilisés dans le tutoriel sont Python 3.10, Bash, Git et Tree.

GIT : UN SYSTÈME DE CONTRÔLE DE VERSION

Il est attendu que vous soyez familier avec git, qui est un système de contrôle de version. Si ce n’est pas le cas, une introduction à Git vous est proposée. Les commits sont basés sur les meilleures pratiques pour les commits git et les commits conventionnels. Il existe un plugin de commit conventionnel pour PyCharm ou une extension de VSCode qui vous aide à écrire des commits dans ce format.

TESTER LE CODE : UNE PARTIE VITALE DU DÉVELOPPEMENT DE LOGICIEL

Tester votre code est une partie vitale du développement de logiciels. Cela vous aide à vous assurer que votre code fonctionne comme prévu. Vous pouvez tester manuellement votre code ou votre application ou utiliser un framework de test pour automatiser le processus. Les tests automatisés peuvent être de différents types, tels que les tests unitaires, les tests d’intégration, les tests de bout en bout, les tests de pénétration, etc. Dans ce tutoriel, nous nous concentrons sur l’écriture d’un simple test unitaire pour notre fonction unique dans notre projet. Cela démontrera que notre base de code est bien testée et fiable, ce qui est une exigence de base pour tout projet approprié.

PYTEST : UN FRAMEWORK DE TEST POPULAIRE ET PUISSANT AVEC DE NOMBREUX PLUGINS

Python a quelques frameworks de tests parmi lesquels choisir, tels que le unittest intégré à la bibliothèque standard. Cependant, ce module a certains inconvénients, tels que la nécessité de code de base, des tests basés sur des classes et des méthodes d’assertion spécifiques. Une meilleure alternative est pytest, qui est un framework de test populaire et puissant avec de nombreux plugins. Si vous n’êtes pas familier avec pytest, vous devriez lire ce tutoriel introductif avant de continuer, car nous écrirons un test simple sans expliquer beaucoup les bases.

RÉDACTION D’UN TEST UNITAIRE AVEC PYTEST

Commençons par créer une nouvelle branche : feat/unit-tests. Dans notre application src / example_app, nous n’avons que deux fichiers que nous pouvons tester : __init__.py et app.py. Le fichier __init__ contient uniquement la version et le fichier app.py contient notre application fastAPI et le point d’accès GET pokemon. Nous n’avons pas besoin de tester le fichier __init__.py car il ne contient que la version et il sera exécuté lorsque nous importerons app.py ou tout autre fichier de notre application.

Nous pouvons créer un dossier de tests à la racine du projet et ajouter le fichier de test test_app.py pour qu’il ressemble à ceci :

├── src
│ └── example_app
│ ├── __init__.py
│ └── app.py
└── tests
└── test_app.py

Avant d’ajouter une fonction de test avec pytest, nous devons d’abord installer le framework de tests et ajouter certaines configurations pour faciliter notre vie.

Créons maintenant notre test dans test_app.py :

def test_get_pokemon():
expected_response = {“name”: “bulbasaur”, “height”: 7, “weight”: 69}
with respx_mock.mock:
respx_mock.get(“https://pokeapi.co/api/v2/pokemon/bulbasaur/”).respond(
json=expected_response
)
async with httpx.AsyncClient(app=app, base_url=”http://test”) as client:
response = await client.get(“/pokemon/bulbasaur/”)
assert response.json() == expected_response
Installation de pytest – Image by author

Nous avons maintenant écrit notre test, créé la configuration nécessaire et effectué les tests pour notre projet Python en utilisant un framework de test populaire. Vous pouvez continuer à installer d’autres plugins et à explorer les options disponibles dans pytest pour votre projet.

What do you think?

Written by Barbara

Leave a Reply

Your email address will not be published. Required fields are marked *

Plonger

Pouvons-nous faire confiance à Apple avec les données de santé mentale ?