⌘K
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
⌘K
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
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 cette partie, on va s'intéresser au test de la modification de notre profil.Donc quand on est connecté à la boutique, on peut aller dans mon profil ici,et je peux par exemple changer le nom de famille de l'utilisateur,rentrer mon mot de passe pour valider,et cliquer sur sauvegarder pour modifier des informations
00:00:16 :comme mon prénom ou mon nom de famille.Alors pourquoi c'est intéressant de tester ce cas de figure ?Puisque là en fait on va devoir envoyer des données,donc ça va nous permettre dans le test d'envoyer des donnéesavec une requête de type post, comme on l'avait fait ici,
00:00:28 :mais sauf que là on va envoyer d'autres types de données.On va vérifier également que l'utilisateur a bien été modifié.Donc il y a pas mal de cas de figure qu'on n'a pas encore vusqu'on va pouvoir tester avec ce test.
00:00:38 :Donc dans ce cas-ci, je vais le mettre à la suite de store login test.Là je me rends compte en fait qu'on a pas mal de tests iciqui ont un peu plus rapport avec le compte de l'utilisateur.
00:00:47 :Ici on teste le valid login ou invalid login,donc c'est probablement des tests qu'il serait un peu plus judicieuxde déplacer dans l'application accounts,puisque pour l'instant on a juste les tests des modèles.
00:00:57 :Donc on pourrait déplacer tout ça à l'intérieur de test views,par exemple ici, donc un fichier qu'on pourrait créerà l'intérieur du dossier de test de l'application accounts.
00:01:05 :Dans ce cas-ci, vu que tout est déjà ici, je vais le laisser.Mais voilà, je tenais à le dire, c'est juste une petite noteau niveau organisation, ça serait probablement un peu plus logique.
00:01:12 :Donc ici qu'est-ce qu'on a ?On a un utilisateur qui s'appelle Patrick Smithavec un mot de passe 1, 2, 3, 4, 5, 6, 7, 8, 9.
00:01:18 :Donc ce qu'on va faire, c'est rajouter une méthode de test iciqu'on va appeler test profile change, tout simplement.Et on va donc déjà connecter notre utilisateur,puisque ici on le crée, mais on ne le connecte pas.
00:01:29 :Donc ce qu'on va faire, c'est self.client.login.Donc on a une fonction de login qui est disponible directement sur le client.On va lui passer l'email qui est dans ce cas-ci,donc patrick.gmail.com et le mot de passe qui est,
00:01:43 :si je me souviens bien, 1, 2, 3, 4, 5, 6, 7, 8, 9.Donc je vais vérifier, voilà c'est bien ça,patrick.gmail.com et 1, 2, 3, 4, 5, 6, 7, 8, 9.
00:01:50 :Donc normalement on devrait être correctement connecté.Et ensuite on va créer un dictionnaire avec les donnéesqu'on souhaite passer à notre revue.Donc qu'est-ce qu'on va passer comme données ?
00:02:00 :On va passer le prénom, le nom de famille, l'adresse email et le mot de passe.Donc je vais les mettre à l'intérieur d'un dictionnaire ici.
00:02:06 :Donc la première clé ça va être email.Donc l'email, là encore on est avec patrick.gmail.com.Je n'oublie pas la virgule ici.Ensuite on va mettre password.
00:02:15 :Donc le mot de passe 1, 2, 3, 4, 5, 6, 7, 8, 9.Et ensuite on a le firstname et lastname.Donc je vais retourner voir dans le fichier html quel est le nom des champs.
00:02:26 :Donc on peut aller voir soit dans le fichier html, soit dans la vue.Donc dans la vue ça doit être au niveau du account.Dans views.py, donc là on a le login.
00:02:34 :Voilà, profil ici.Donc on a la requête post et on va récupérer le firstname et le lastname.Et le email et password bien entendu.Donc on va retourner dans notre test views.
00:02:44 :On va passer le firstname.Donc firstname on va garder patrick.Et on va juste changer le nom de famille.Donc lastname.Et on va mettre à la place par exemple martin.
00:02:55 :Puisque là je ne sais plus ce que j'avais mis.Voilà j'avais mis smith au départ.Donc on va mettre martin.Et on va vérifier ensuite que le changement a bien été opéré.
00:03:02 :Donc qu'est-ce qu'on va faire ici ?Et bien on va faire un self.client.post.Puisqu'on va envoyer des données cette fois-ci.On va les envoyer vers la vue de accounts.profile.
00:03:13 :Donc là si je me souviens bien c'est accounts.profile.Donc accounts.profile.Ça c'est là encore par rapport aux urls.Donc si on va voir dans shop.url.
00:03:21 :On a le accounts ici.Et si je vais voir dans accounts.url.On a le nom de l'application qui est bien accounts avec un s.Et le profile ici avec un e.
00:03:29 :Donc je vais vérifier que j'ai bien ça.Accounts et profile.Donc c'est bon.Donc on va faire une requête ici.Et ensuite on va passer les données avec le paramètre data.
00:03:38 :Donc ça c'est le nom du paramètre.Et on a fait notre dictionnaire qu'on a appelé également data.Donc je vais le passer comme ceci.Vous avez des fois généralement vous verrez les gens l'appellent le query load.
00:03:46 :Ou params.Donc il y a plusieurs noms de variable que les gens peuvent passer.Dans ce cas-ci je vais l'appeler data tout simplement.Puisque ce sont des données que l'on passe à notre requête.
00:03:55 :Donc une fois qu'on a envoyé ces informations.Qu'est-ce qu'on fait dans cette vue.Si l'utilisateur est bien modifié.On va faire un redirect.Donc là on va faire une redirection vers accounts.profile.
00:04:05 :Donc la première chose qu'on va tester c'est.Est-ce qu'on a un code de statut.Donc un status code de 302.Qui est le code de la redirection.
00:04:12 :Donc on va faire un assert equal.On va vérifier que resp.statusCode est égal à 302.Pour vérifier qu'on a bien donc une redirection.Alors je vais récupérer également le résultat de cette requête.
00:04:22 :Dans la variable resp.Pour qu'on puisse récupérer le status code de cette requête.Ensuite qu'est-ce qu'on va faire.Et bien on va tout simplement récupérer l'utilisateur.
00:04:31 :Donc l'utilisateur patrick.gmail.comOn va le récupérer à partir de notre base de données.Pour ensuite vérifier que cet utilisateur a bien été modifié.Alors là ce que je vois souvent.
00:04:40 :C'est des gens qui se demandent.Pourquoi est-ce qu'on peut pas utiliser self.user.Puisque là on a créé notre utilisateur.Et on le récupère dans une variable self.user.
00:04:48 :Alors pourquoi est-ce qu'on peut pas utiliser directement cette variable.Et vérifier que self.user.lastName par exemple est égal à martin.Et bien tout simplement parce que self.user ne va pas être modifié.
00:04:59 :Quand on va faire la requête avec le post ici.On va modifier les informations dans la base de données.Mais la variable self.user elle ne va pas être modifiée.
00:05:06 :Donc c'est normal puisque nous on modifie juste la base de données.Et on ne touche pas à notre variable.Ca reste une variable avec des attributs.
00:05:13 :Des attributs qui ont des valeurs.Et la base de données.Le fait de changer des informations dans la base de données.Ne va pas toucher les données qui sont associées à cette variable python.
00:05:22 :Donc ce qu'on va devoir faire.C'est récupérer l'utilisateur à partir de la base de données.Donc je vais créer une variable que je vais appeler patrick.
00:05:28 :Et à partir de la classe shopper.On va récupérer shopper.object.get.Et on va récupérer l'utilisateur patrick.gmail.com.Donc à partir de l'email.On va récupérer cet utilisateur.
00:05:40 :Qu'on va récupérer dans patrick.Et on va vérifier avec un assert equal.Que patrick.lastname est égal à martin.Puisque là normalement maintenant.Vu qu'on a fait ce self.client.post.
00:05:53 :Vu qu'on a posté ces informations.Donc c'est comme si on avait soumis ce formulaire ici.Avec les informations qu'on a mis dans notre dictionnaire.Donc on va effectivement modifier l'utilisateur dans la base de données.
00:06:04 :Et donc quand on le récupère.Et qu'on vérifie par la suite son nom de famille.Il devrait être correctement modifié.Mais le nom de famille de self.user.
00:06:11 :Lui ne devrait pas être modifié.Puisque là encore c'est juste une variable python.Qui a des attributs avec des valeurs précises.Qui ne devront pas être modifiées.
00:06:19 :Donc je vais tester tout ça.On va revenir dans le terminal.On va relancer les tests.Donc là on est dans le fichier store.test.testviews.Et cette fois-ci.
00:06:27 :Est-ce qu'on est avec le store.test.On est avec le store.loggedintest.Donc store.test.testviews.Je vais changer le nom.Donc store.test.testviews.Et on va tester cette classe.
00:06:42 :Et on va tester ici.TestProfileChange.Donc je lance le test.Et ça marche.Donc on a bien le test qui a été correctement effectué.Donc ça veut dire que tout a été correctement vérifié ici.
00:06:55 :On a bien vérifié le statut de redirection.Et on a bien vérifié que le nom a été correctement modifié.Donc là ce qu'on pourrait rajouter également comme test.
00:07:02 :Que je peux vous laisser faire de votre côté.C'est tester l'autre cas de figure.C'est-à-dire tester déjà quand on n'envoie pas de données.Quand on fait une requête de type GET.
00:07:09 :Est-ce qu'on récupère bien cette URL ici.Donc est-ce qu'on est bien redirigé vers le fichier accounts.profile.Donc ça c'est la première chose qu'on pourrait vérifier.
00:07:18 :Et le deuxième test à faire ce serait le else ici.Par exemple si on fait une requête de type POST comme on l'a fait.Mais qu'on ne passe pas le bon mot de passe.
00:07:26 :Eh bien ça veut dire qu'isValid ici ne serait pas vrai.Ne serait pas vérifié.Donc on irait dans le else.Et on aurait ce message qui serait affiché.
00:07:33 :Donc là on pourrait vérifier qu'on a bien le mot de passe n'est pas valide.Qui est affiché sur la page qui nous est retournée.Donc ça on l'avait déjà fait dans d'autres tests.