- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans les tests qu'on va effectuer, on va devoir souvent tester les valeurs associées à un utilisateur.Pour éviter de répéter du code, on va utiliser ce qu'on appelle les fixtures,donc fixtures comme ceci, qui vont nous permettre de créer une fonction qui va être utilisée pour différents tests.
00:00:15 :Comme ça, ça va nous permettre d'éviter d'avoir à répéter du code.On va également importer notre classe utilisateur et TinyDB pour simuler une base de données et des utilisateurs.
00:00:26 :Je vais, à partir de CRM, importer la classe User.On va également importer PyTest, puisqu'on va l'utiliser pour créer les fixtures.Et on va également importer, depuis TinyDB, la classe TinyDB, qui va nous permettre de créer une base de données.
00:00:44 :On va créer déjà une fixtures qui va setuper notre base de données.Je l'appelle setupDB.Dans cette fonction, on va setuper notre base de données en mémoire,puisqu'on ne souhaite pas écrire dans ce cas-ci à chaque fois qu'on lance les tests des données dans le fichier JSON.
00:00:58 :Si on retourne voir à l'intérieur de crm.py, par défaut, l'attribut db de notre classe utilisateur qui sert à la base de données,il est à l'intérieur du fichier db.json.
00:01:08 :On va modifier ça légèrement pour utiliser, à la place d'une base de données dans un fichier JSON, une base de données en mémoire.Pour ça, on va devoir faire un autre import.
00:01:18 :A partir de tinydb.storage, on va importer MemoryStorage.Dans notre fixtures setupDB, on va changer l'attribut db.On va dire user.db égale à tinydb de MemoryStorage.
00:01:31 :On va changer le storage ici pour le mettre dans la mémoire, avec MemoryStorage ici,plutôt que dans un fichier JSON comme on le fait ici par défaut.
00:01:40 :Comme ça, ça nous évitera d'avoir à gérer un fichier JSON qu'il faudrait supprimer à chaque foispour ne pas avoir de fichiers qui ne sont pas utiles sur le disque.
00:01:48 :Comme ça, on va tout faire en mémoire et on va pouvoir tester notre base de donnéessans créer de fichiers supplémentaires.Pour en faire une fixtures ici de cette fonction, il faut rajouter un décorateur.
00:01:57 :On va mettre un arrow base et on va dire que cette fonction est une fixturesen faisant comme ceci at pytest.fixtures.On va également créer un utilisateur de test.
00:02:07 :Je vais créer une fonction ici que je vais appeler user.Cette fonction va utiliser la fixtures de ma base de données, donc celle-ci.Cette fixtures va utiliser la première qu'on a créée, donc setupDB ici.
00:02:18 :Pour utiliser un fixtures, on met tout simplement le nom du fixtures qu'on a crééà l'intérieur des parenthèses.On pourra le faire pour les tests ici.
00:02:26 :Je vais l'utiliser à l'intérieur même de ce fixturespuisque là, on va rajouter le pytest.fixtures ici.On a un fixtures user qui va utiliser le fixtures setupDB.
00:02:35 :Et setupDB, on va l'utiliser également de façon indépendante pour certains tests.Comme ça, quand on aura besoin juste de la base de donnéeset qu'on va créer des utilisateurs pour certains cas de figure,on va utiliser setupDB.
00:02:46 :Et quand on va vouloir utiliser un utilisateur déjà factice,on va pouvoir utiliser directement ce fixtures user.Je mets setupDB ici pour utiliser ma base de données en mémoireet on va créer un utilisateur.
00:02:58 :Je vais l'appeler user également.On pourrait, pour ne pas créer de confusion avec le nom de la fonction,l'appeler différemment.Je pourrais l'appeler u tout simplement.
00:03:06 :Et on va créer un utilisateur à partir de notre classe user.On va dire que le firstname c'est égal à notre cher Patrick.Pour le lastname, on va mettre Martinpuisque c'est un nom assez courant en France.
00:03:17 :Pour l'adresse, on va mettre quelque chose de factice là encore,mais une adresse valide.On va dire un rue du chemin et on va mettre ça 75 000 Paris,par exemple, comme ceci.
00:03:28 :Et pour le numéro de téléphone,on va mettre là encore un numéro de téléphone qui va être factice,mais qui sera valide.On va mettre 0 1 2 3 4 5 6 7 8 9,donc uniquement des nombres.
00:03:38 :Et on en met 10 pour que ce soit valide.Ensuite, on va sauvegarder cet utilisateur.Donc on va faire u.save pour sauvegarder cet utilisateurdans ma base de données en mémoire.
00:03:47 :Et on va retourner l'utilisateur en faisant un return de notre instance.Donc voilà pour la création de nos deux fixtures.Donc setup DB qui nous permet de tout simplement créerune base de données en mémoire pour notre classe user.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.