Comment tester sur une page authentifiée par Django

Django peut être testé relativement facilement, mais je suis accro à un simple test d'accès sur une page qui nécessite une authentification cette fois-ci, je vais donc l'écrire.

test.py


from django.test import TestCase, RequestFactory
from django.contrib.auth.models import User

from .views import SomeGenericView


class TestSomeView(TestCase):
    def test_some_auth_page(self):
        user = User.objects.create_user(...)  #Créer un utilisateur de connexion
        rf = RequestFactory()
        request = rf.get("/some/auth/page")
        request.user = user
        res = SomeGenericView.as_view()(request)
        
        self.assertEqual(res.status_code, 200)

C'était un moyen de créer un objet de requête avec RequestFactory () et de piquer l'utilisateur qui veut s'authentifier.

Cliquez ici pour la documentation Advanced testing topics | Django documentation | Django

Y a-t-il un moyen un peu plus facile à faire ...

Au fait, quand vous voulez POSTER

test_post.py


class TestSomeView2(TestCase):
    def test_some_auth_page_post(self):
        user = ...  #Comme ci-dessus
        
        rf = RequestFactory()
        req = rf.post("/some/post/url", data={"edit": "value"})  #Seulement ici c'est différent
        req.user = user  #Poussez l'utilisateur
        res = SomeGenericView.as_view()(req)
        
        self.assertEqual(res.status_code, 302)

Je pense que je peux y aller.

Recommended Posts

Comment tester sur une page authentifiée par Django
Comment vivre une vie décente avec Windows 2017
Comment déployer une application Django dans le cloud Alibaba
Comment appeler une fonction
Comment installer Linux sur un PC UEFI 32 bits
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment s'inscrire auprès de pypi
Comment pirater un terminal
Comment exécuter Django sur IIS sur un serveur Windows
Comment créer un environnement Python sur Amazon Linux 2
Comment utiliser GitHub sur un serveur multi-personnes sans mot de passe
Comment utiliser Fujifilm X-T3 comme webcam sur Ubuntu 20.04
Une note sur la façon de préparer facilement un environnement de pratique Linux
Comment exécuter un modèle de transformateur entraîné localement sur CloudTPU
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Comment créer un jeu d'action multijoueur en ligne avec Slack
Comment monter un répertoire Windows 10 sur Ubuntu-Server 20.04 sur VMware Workstation 15.
Remarques sur la façon de charger un environnement virtuel avec PyCharm
Comment rédiger un test de traitement utilisant BigQuery
Comment enregistrer un package dans PyPI (à partir de septembre 2017)
Comment obtenir une liste de liens à partir d'une page de wikipedia
Comment faire une traduction japonais-anglais
[Django] Comment tester le formulaire [TDD]
Comment mettre un lien symbolique
Comment installer mysql-connector-python sur Mac
Comment utiliser Dataiku sous Windows
Remarques sur l'utilisation de pywinauto
Comment créer un bot slack
Comment créer un package Conda
Comment installer Graph-Tool sur macOS
Comment installer VMware-Tools sur Linux
Comment installer pycrypto sur Windows
Comment créer un robot - Avancé
Comment déployer django-compresseur sous Windows
Remarques sur l'utilisation des featuretools
Comment créer une fonction récursive
Comment créer un pont virtuel
Comment exécuter matplotlib sur heroku
Comment installer PyPy sur CentOS
Comment utiliser l'homebrew dans Debian
Malentendu sur la façon de connecter CNN
Comment installer TensorFlow sur CentOS 7
Comment créer un Dockerfile (basique)
[Blender] Comment créer un plug-in Blender
Comment supprimer un conteneur Docker
Comment créer un robot - Basic
Comment installer Maven sur CentOS
Remarques sur la rédaction de requirements.txt
Comment créer un fichier de configuration
Comment installer Music 21 sur Windows
Remarque sur la façon de vérifier la connexion au port du serveur de licences
Est-il facile de synthétiser un médicament sur le marché?
Comment personnaliser U-Boot avec une carte personnalisée pour OSD335X (Remarque)
Comment créer une bibliothèque .dylib à partir d'une bibliothèque .a avec OSX (El Capitan)
Comment faire un test unitaire Part.1 Modèle de conception pour l'introduction
Comment créer une grande quantité de données de test dans MySQL? ??
Comment déployer une application Django sur heroku en seulement 5 minutes