我正在运行测试,记录用户,发送一些POST数据,并分析响应。虽然我可以硬编码用户信息,但我不明白为什么我无法从user
对象访问request
对象。以下是我的测试结果:
class CompleteGuidedSetupTestCase(TestCase):
fixtures = ['test_data.json']
def setUp(self):
self.client = Client()
self.client.login(username='test@test.test', password='testtest')
def test_complete_guided_setup_defaults(self):
response = self.client.post('/url', {
'data': data
})
# reponse.request.user doesn't work either
user = response.request['user']
我也尝试在self.client
上的某处访问用户对象,但它似乎不存在。必须有一些方法来访问它。
此外,调用此视图的视图不会呈现给模板,因此它不在模板上下文中。
答案 0 :(得分:2)
Django文档声明response.request
是模拟测试的响应数据。这与视图中使用的request
对象不同,因此您无法以这种方式访问user
。
测试客户端不存储用户,它存储一个cookie,表明它以该用户身份登录。
在您的测试方法或setUp
方法中,您可以使用以下命令从数据库中获取用户:
user = User.objects.get(username='test@test.test')