我在Django测试中设置cookie有麻烦。
class Test_views(TestCase):
def test_set_cookie(self):
session = self.client.session
session['mycookie'] = 'testcookie'
session.save()
response = self.client.get(reverse('homepage'))
...
我在视图中打印cookie以确定:
views.py
...
def homepage(request):
print(request.session.keys())
...
实际上,cookie mycookie
不存在。
显然,这是设置cookie的正确方法:
https://docs.djangoproject.com/en/1.11/topics/testing/tools/#django.test.Client.session
顺便说一句,使用request.factory,它正在运行:
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)
...
答案 0 :(得分:0)
我在设置中使用了错误的SESSION_ENGINE:
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
我忘记了我已经做到了......