Client.get()和Client.post()都会自动做持久化处理,在发送请求时,必须设置follow=True
举个例子:
class ShowViewTestCase(TestCase):
def setUp(self):
super(ShowViewTestCase, self).setUp()
self.user = MyUserFactory.create()
def test_get(self):
url = "/shop/"
# 在用户没有登陆的情况下访问失败,返回302状态码
response = self.client.get(url)
self.assertEqual(response.status_code, status.HTTP_302_FOUND)
# 用户已经登陆的情况下
login_url = '/login/'
post_data = {
'username': self.user.username,
'pwd': self.user.password
}
# client会自动做状态信息持久化,自动保存cookies和sessions,需要设置参数 follow=True
self.client.post(login_url, post_data, follow=True)
response = self.client.get(url, follow=True)
self.assertEqual(response.status_code, status.HTTP_200_OK)