[PYTHON] So testen Sie auf einer von Django authentifizierten Seite

Django ist relativ einfach zu testen, aber ich bin süchtig nach einem einfachen Zugriffstest auf einer Seite, für die diesmal eine Authentifizierung erforderlich ist. Deshalb schreibe ich ihn auf.

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(...)  #Login-Benutzer erstellen
        rf = RequestFactory()
        request = rf.get("/some/auth/page")
        request.user = user
        res = SomeGenericView.as_view()(request)
        
        self.assertEqual(res.status_code, 200)

Es war eine Möglichkeit, ein Anforderungsobjekt mit "RequestFactory ()" zu erstellen und den Benutzer zu stupsen, der sich bei ihm authentifizieren möchte.

Klicken Sie hier für die Dokumentation Advanced testing topics | Django documentation | Django

Gibt es einen Weg, der etwas einfacher ist ...

Übrigens, wenn Sie POSTEN möchten

test_post.py


class TestSomeView2(TestCase):
    def test_some_auth_page_post(self):
        user = ...  #Das gleiche wie oben
        
        rf = RequestFactory()
        req = rf.post("/some/post/url", data={"edit": "value"})  #Nur hier ist anders
        req.user = user  #Schieben Sie den Benutzer
        res = SomeGenericView.as_view()(req)
        
        self.assertEqual(res.status_code, 302)

Ich denke, ich kann dorthin gehen.

Recommended Posts

So testen Sie auf einer von Django authentifizierten Seite
Wie man mit 2017 Windows ein anständiges Leben führt
So stellen Sie eine Django-Anwendung in der Alibaba-Cloud bereit
So rufen Sie eine Funktion auf
So installieren Sie Linux auf einem 32-Bit-UEFI-PC
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
So registrieren Sie sich bei pypi
Wie man ein Terminal hackt
So führen Sie Django unter IIS auf einem Windows-Server aus
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Verwendung von GitHub auf einem Server für mehrere Personen ohne Kennwort
Verwendung von Fujifilm X-T3 als Webcam unter Ubuntu 20.04
Ein Hinweis zur einfachen Vorbereitung einer Linux-Übungsumgebung
So führen Sie ein geschultes Transformatormodell lokal auf CloudTPU aus
So erstellen Sie eine neue virtuelle Python-Umgebung unter Ubuntu
Wie erstelle ich ein Multiplayer-Online-Actionspiel mit Slack?
So mounten Sie ein Windows 10-Verzeichnis unter Ubuntu-Server 20.04 auf VMware Workstation 15.
Hinweise zum Laden einer virtuellen Umgebung mit PyCharm
So schreiben Sie einen Test für die Verarbeitung mit BigQuery
So registrieren Sie ein Paket in PyPI (Stand September 2017)
So erhalten Sie eine Liste mit Links von einer Seite aus Wikipedia
Wie erstelle ich eine japanisch-englische Übersetzung?
[Django] So testen Sie Form [TDD]
So setzen Sie einen symbolischen Link
So installieren Sie mysql-connector-python auf einem Mac
Verwendung von Dataiku unter Windows
Hinweise zur Verwendung von Pywinauto
Wie man einen lockeren Bot macht
So erstellen Sie ein Conda-Paket
So installieren Sie das Graph-Tool unter macOS
So installieren Sie VMware-Tools unter Linux
Wie erstelle ich einen Crawler?
So stellen Sie den Django-Kompressor unter Windows bereit
Hinweise zur Verwendung von featuretools
So erstellen Sie eine rekursive Funktion
So erstellen Sie eine virtuelle Brücke
Wie man Matplotlib auf Heroku ausführt
So installieren Sie PyPy unter CentOS
Wie benutzt man Homebrew in Debian?
Missverständnisse beim Verbinden von cnn
So installieren Sie TensorFlow unter CentOS 7
Wie erstelle ich eine Docker-Datei?
[Blender] So erstellen Sie ein Blender-Plug-In
So löschen Sie einen Docker-Container
Wie erstelle ich einen Crawler?
So installieren Sie Maven unter CentOS
Hinweise zum Schreiben von require.txt
So erstellen Sie eine Konfigurationsdatei
So installieren Sie Musik 21 unter Windows
Ein Hinweis zum Überprüfen der Verbindung zum Lizenzserver-Port
Wie einfach ist es, ein Medikament auf dem Markt zu synthetisieren?
So passen Sie U-Boot mit einer benutzerdefinierten Karte für OSD335X an (Hinweis)
So erstellen Sie eine .dylib-Bibliothek aus einer .a-Bibliothek mit OSX (El Capitan)
So führen Sie einen Komponententest durch Teil 1 Entwurfsmuster zur Einführung
Wie erstelle ich eine große Menge an Testdaten in MySQL? ??
So stellen Sie eine Django-App in nur 5 Minuten für Heroku bereit