gpt4 book ai didi

python - django 如何在客户端测试中设置请求用户

转载 作者:太空狗 更新时间:2023-10-30 01:46:22 26 4
gpt4 key购买 nike

我正在测试一个 View ,我的测试看起来像:

def test_profile(self, user_id):
user = User.objects.create_user(username="myusername", password="password", email="abc@testmail.com")
self.client.user = user

print(user.id)

request = self.client.get("/account/profile/{}/".format(user_id), follow=True)
self.assertEqual(request.status_code, 200)

这里我的个人资料 View 有一个 login_required 装饰器。如何将 user 设置为 request.user

最佳答案

我自己也尝试这样做,但发现 Django Test Client 没有在请求中设置用户,而且不可能设置 request.user使用 Client 时任何其他方式。我用了RequestFactory对此。

def setUp(self):
self.request_factory = RequestFactory()
self.user = User.objects.create_user(
username='javed', email='javed@javed.com', password='my_secret')

def test_my_test_method(self):
payload = {
'question_title_name': 'my first question title',
'question_name': 'my first question',
'question_tag_name': 'first, question'
}
request = self.request_factory.post(reverse('home'), payload)
request.user = self.user
response = home_page(request)

关于请求工厂的更多信息 here

关于python - django 如何在客户端测试中设置请求用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com