如何使用django测试客户端设置_dont_enforce_csrf_checks

时间:2013-02-19 18:56:37

标签: python django csrf

我正在尝试使用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)

1 个答案:

答案 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)