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