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