我正在尝试使用django测试客户端在更高级别的集成测试期间强制执行csrf检查,但我不确定如何手动翻转此位(在调用客户端之前)
这是我目前失败的原因(我得到的是201而不是403)
def test_should_get_403_when_csrf_enforced(self):
self.client.enforce_csrf_checks=False
response = self.client.post(url, {'name': 'foobar'})
self.assertEqual(403, response.status_code)
答案 0 :(得分:0)
我最终得到了这个解决方案,首先你必须设置csrf令牌然后你需要在手动新建客户端时翻转enforce_csrf_check
def test_should_get_403_when_csrf_enforced(self):
self.client = test.Client(enforce_csrf_checks=True)
self.client.cookies[settings.CSRF_COOKIE_NAME] = 'asdf'
response = self.client.post(url, {'name': 'foobar'})
self.assertEqual(403, response.status_code)