Django重定向状态代码错误

时间:2016-07-26 15:59:20

标签: django http redirect testing

我正在测试Django应用。当用户登录时,我将其重定向到图形页面。为了测试,我写了

response = TestCase.client.post('app/login', {credentials}, follow=True)
TestCase.assertRedirects(response, 'app/graphs')

返回

AssertionError: False is not true : 
Response didn't redirect as expected: Response code was 200 (expected 302).

足够合理。 The docs say assertRedirects有一个status_code参数。然后打电话给

TestCase.assertRedirects(response, 'app/graphs', status_code=200)

返回

AssertionError: False is not true : 
Response didn't redirect as expected: Response code was 200 (expected 200).

发生了什么?

1 个答案:

答案 0 :(得分:2)

status_code参数是重定向响应的状态。通常应为301(永久重定向)或302(临时重定向)。

使用status_code=200没有意义,因为200不是重定向响应。

我同意响应代码为200(预期为200)。看起来有点令人困惑,但断言错误的关键部分是响应没有按预期重定向

由于断言告诉您没有被重定向,这表明您的登录帖子无效。您可以尝试检查response.content以查看问题所在。请注意,您的网址应以斜杠开头(即/app/login/app/graphs)。