gpt4 book ai didi

Django REST 框架 APIClient 在 shell 中进行身份验证,但不在我的单元测试中

转载 作者:行者123 更新时间:2023-12-01 13:50:14 25 4
gpt4 key购买 nike

我正在尝试使用此处的示例对 REST API View 集进行单元测试。如果我在 manage.py shell 中逐行运行代码,我可以很好地进行身份验证并获得 200 响应代码。当它在我的单元测试中时,身份验证失败!

这是类:

class RiskViewSetTest(unittest.TestCase):

def setUp(self):
pass

def testClientView(self):
client = APIClient()
client.login(username='test@test.us',password='realpassword')
response = client.get('/api/v1/risks/')
self.assertTrue(response.status_code, 200)

如果我将断言更改为:

self.assertTrue(client.login(username='test@test.us',password='realpassword'))

它也失败了,而 shell 中的相同命令返回 True。

最佳答案

如果你正在运行测试用例,它会自动创建数据库来执行测试。在 shell 中你已经有数据库并且用户在那里,它正在验证。所以你需要在这里创建用户并进行身份验证。请遵循此代码:

class RiskViewSetTest(unittest.TestCase):

def setUp(self):
self.client = APIClient()
User.objects.create_user(
username='test@test.us', password='realpassword')
def testClientView(self):
self.client.login(
username='test@test.us',password='realpassword')
response = self.client.get('/api/v1/risks/', format='json')
self.assertTrue(response.status_code, 200)

关于Django REST 框架 APIClient 在 shell 中进行身份验证,但不在我的单元测试中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32384833/

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