J'ai des problèmes à paramétrer le cookie dans le test Django.Test Django: Paramétrer le cookie (Django 1.11+)
class Test_views(TestCase):
def test_set_cookie(self):
session = self.client.session
session['mycookie'] = 'testcookie'
session.save()
response = self.client.get(reverse('homepage'))
...
j'imprimer les cookies dans les vues pour être sûr:
views.py
...
def homepage(request):
print(request.session.keys())
...
Et en effet, le cookie mycookie
n'existe pas.
Apparemment, c'est la bonne façon de mettre cookie:
https://docs.djangoproject.com/en/1.11/topics/testing/tools/#django.test.Client.session
Par ailleurs, en utilisant request.factory, il travaille:
def add_session_to_request(request):
"""Annotate a request object with a session (RequestFactory doesn't permit Session"""
middleware = SessionMiddleware()
middleware.process_request(request)
request.session.save()
class Test_views(TestCase): # testing with cookies set
def setUp(self):
super(Setting_cookie, self).setUp()
factory = RequestFactory()
self.request = factory.get(reverse('homepage'))
add_session_to_request(self.request)
def test_set_cookie(self):
session = self.request.session
session['mycookie'] = 'testcookie'
session.save()
response = homepage(self.request)
...
Impossible de reproduire; Cela fonctionne bien pour moi. Bien qu'il n'y ait rien à voir avec les cookies, les données de session ne sont généralement pas stockées dans les cookies. Et la classe TestCase a déjà un attribut 'client', que vous devriez utiliser plutôt que de créer le vôtre dans' setUpClass'. –
Merci. Est-ce que tu as une idée de comment je débogue ça alors que ça marche pour toi et pas avec ma config? – ThePhi