【发布时间】:2017-06-01 04:58:03
【问题描述】:
我将session_key 保存到一个对象中,以便将数据与匿名用户相关联。在单元测试中,我试图使用测试客户端来设置一个固定的键,但是键在 POST 请求期间发生了变化。一个例子:
// tests.py
def test_post(self):
session_key = "123"
session = self.client.session
session['session_key'] = session_key
session.save()
response = self.client.post('/post-url/')
self.assertEquals(response.content, session_key)
# AssertionError: b'str60i3gjpvru8f7mellsdf2y3xd2jgh' != '123'
// views.py
@require_http_methods(['POST'])
def ajax_post(request):
return HttpResponse(request.session.session_key)
基于此comment,我尝试在更改 session_key 之前包含另一个 GET 响应 response = self.client.get('/'),但似乎没有帮助。
我做错了什么?
编辑:我使用的是 Django 1.9.6、Python 3.4。在 Daniel Roseman 回答后更改了问题标题。
【问题讨论】:
标签: django unit-testing session-keys