django.test.testcase和请求对象

时间:2013-07-04 23:46:23

标签: python django testcase

我确信我在这里遗漏了一些显而易见的东西,但这个测试目前失败了:

def test_index_view_returns_correct_html_document(self):
        request = HttpRequest()
        response = LogIn(request)
        expected_html = render_to_string('login.html')
        self.assertEqual(response.content, expected_html)

失败并显示错误''HttpRequest'对象没有属性'user''

正在测试的视图中有一段代码可以检查用户当前是否已登录,如果是,则抛出重定向:

if request.user.is_authenticated():
            return HttpResponseRedirect(reverse('index'))

我错过了什么?我查看了文档,但似乎无法找到解释。我确信这是显而易见的。或者我做错了。

1 个答案:

答案 0 :(得分:0)

您刚刚构建了一个裸请求并将其传递给该函数,因此它没有经过任何中间件 - 包括添加用户对象的身份验证。

您应该使用测试客户端进行此测试,因为它模拟整个请求/响应周期。