3

我有一个返回如下的视图:

headers = remember(request, str(user.id))
return HTTPFound(location=request.route_url('home'), headers=headers)

我正在写一个测试,但我如何遵循上面代码中的重定向?我仍然得到 HTTPFound 对象及其 response.request 应该是发起响应的请求给我 None。

到目前为止,这是我的测试代码:

request = testing.DummyRequest(
    post=MultiDict(email='me@gmail.com', password='random'))
response = login(request)

在这里,响应是 HTTPFound 但我如何按照重定向到家?

4

1 回答 1

4

我意识到这没有使用DummyRequest

我会推荐功能测试,因为WebTest它更容易做和管理。

在返回重定向的响应中,您可以调用follow以跟踪完整请求。

http://webtest.pythonpaste.org/en/latest/index.html

redirect_response = self.testapp.post(
    '/signup', params=post_params, status=302)
full_response = redirect_response.follow()
于 2012-05-27T14:06:30.230 回答