gpt4 book ai didi

python - 覆盖率测试 django 注销

转载 作者:行者123 更新时间:2023-12-01 04:07:09 25 4
gpt4 key购买 nike

我在views.py中获得了django注销功能:

def logout_view(request):

logout(request)
return HttpResponseRedirect(reverse('cost_control_app:login'))

我尝试使用此代码的覆盖率来测试它:

class TestLogout(TestCase):

def test_logout(self):
self.client = Client()
response = self.client.get('/logout/')

但它不起作用,我的回溯没有返回:

> /home/juanda/cost_control_repository/cost_control/cost_control_app/unitary_test/test_views_authentication.py(73)TestLogout()
-> def test_logout(self):
(Pdb) n
--Return--
> /home/juanda/cost_control_repository/cost_control/cost_control_app/unitary_test/test_views_authentication.py(73)TestLogout()->None
-> def test_logout(self):

这是注销的网址:

url(r'^logout/$', views_authentication.logout_view, name = "logout"),

我认为函数根本没有被调用,但我不知道还能做什么......请帮忙??

提前致谢

最佳答案

首先,该网址似乎有问题。我觉得应该是

class TestLogout(TestCase):

def test_logout(self):
self.client = Client()
response = self.client.get('/cost_control/logout/')

另外,我建议先登录用户。所以,

class TestLogout(TestCase):

def test_logout(self):
self.client = Client()
# Assuming there is a user exists in tests db
# or make a user like.
# User.objects.create_user(username='fred', email='test@test.com', password='secret')
self.client.login(username='fred', password='secret')
response = self.client.get('/cost_control/logout/')
self.assertEqual(response.status_code, 302)

对于运行覆盖范围,您可以执行以下操作:覆盖率运行 --source=.,cv_manage manage.py 测试其中 --source = [所有应用程序]这也可以在 .coveragerc 中配置

关于python - 覆盖率测试 django 注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35411206/

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