Python Django覆盖注销测试
Im使用覆盖率从views.py测试此视图:Python Django覆盖注销测试,python,django,unit-testing,coverage.py,test-coverage,Python,Django,Unit Testing,Coverage.py,Test Coverage,Im使用覆盖率从views.py测试此视图: class Login(View): template_name = ['cost_control_app/login.html', 'cost_control_app/home.html'] def get(self, request, *args, **kwargs): form = UsersForm() return render(request, self.template_name[0],
class Login(View):
template_name = ['cost_control_app/login.html', 'cost_control_app/home.html']
def get(self, request, *args, **kwargs):
form = UsersForm()
return render(request, self.template_name[0],{"form":form,})
def post(self, request, *args, **kwargs):
#import pdb; pdb.set_trace()
username = request.POST['username']
password = request.POST['password']
#import pdb; pdb.set_trace()
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
if user.is_active:
form_group = GroupsForm()
lista = definetree(request.user.groups.all()[0].name, request.user.id)
return render_to_response(self.template_name[1], {"form_group" : form_group,
"groups":lista[0],
"subgroups":lista[1] ,
"sub_subgroups":lista[2],
"cost_items":lista[3],
"count_requests":lista[4],
},RequestContext(request))
else:
logout_view(request)
else:
return HttpResponseRedirect(reverse('cost_control_app:login'))
def logout_view(request):
logout(request)
return HttpResponseRedirect(reverse('cost_control_app:login'))
class test_login_out(TestCase):
fixtures = ['test_data_cost_control_app.json']
def test_login_get(self):
request = HttpRequest()
request.method = 'GET'
Login.as_view()(request)
def test_login_post(self):
request = HttpRequest()
request.method = 'POST'
#import pdb; pdb.set_trace()
tuser = User.objects.create_user(
username='jsanchesan', email='jacob@test.com', password='abcd1234')
search = User.objects.get(username = tuser.username)
search.is_active = False
search.save()
request.POST['username'] = search.username
request.POST['password'] = 'abcd1234'
engine = import_module(settings.SESSION_ENGINE)
session_key = None
request.session = engine.SessionStore(session_key)
Login.as_view()(request)
这是我在test_views.py中对该视图的测试:
class Login(View):
template_name = ['cost_control_app/login.html', 'cost_control_app/home.html']
def get(self, request, *args, **kwargs):
form = UsersForm()
return render(request, self.template_name[0],{"form":form,})
def post(self, request, *args, **kwargs):
#import pdb; pdb.set_trace()
username = request.POST['username']
password = request.POST['password']
#import pdb; pdb.set_trace()
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
if user.is_active:
form_group = GroupsForm()
lista = definetree(request.user.groups.all()[0].name, request.user.id)
return render_to_response(self.template_name[1], {"form_group" : form_group,
"groups":lista[0],
"subgroups":lista[1] ,
"sub_subgroups":lista[2],
"cost_items":lista[3],
"count_requests":lista[4],
},RequestContext(request))
else:
logout_view(request)
else:
return HttpResponseRedirect(reverse('cost_control_app:login'))
def logout_view(request):
logout(request)
return HttpResponseRedirect(reverse('cost_control_app:login'))
class test_login_out(TestCase):
fixtures = ['test_data_cost_control_app.json']
def test_login_get(self):
request = HttpRequest()
request.method = 'GET'
Login.as_view()(request)
def test_login_post(self):
request = HttpRequest()
request.method = 'POST'
#import pdb; pdb.set_trace()
tuser = User.objects.create_user(
username='jsanchesan', email='jacob@test.com', password='abcd1234')
search = User.objects.get(username = tuser.username)
search.is_active = False
search.save()
request.POST['username'] = search.username
request.POST['password'] = 'abcd1234'
engine = import_module(settings.SESSION_ENGINE)
session_key = None
request.session = engine.SessionStore(session_key)
Login.as_view()(request)
在调用logout_view(request)函数之前,它一直运行良好,因为抛出了以下错误:
->注销视图(请求)(Pdb)n键错误:“服务器名称”
知道为什么吗?提前谢谢。您缺少返回:
返回注销视图(请求)
您在测试中何时调用注销视图()?你能发布异常的完整回溯吗?我需要在哪里调用返回Timmy,Haken,我在用户的else中调用它。在视图中是否处于活动状态为您的问题添加回溯。当然,我已经更新了我的问题,这里也是:-->logout\u view(request)(Pdb)n key错误:“SERVER\u NAME”您缺少返回:return logout\u view(request)
您在测试中何时调用logout\u view()?你能发布异常的完整回溯吗?我需要在哪里调用返回Timmy,Haken,我在用户的else中调用它。在视图中是否处于活动状态添加回溯到您的问题。当然,我已经更新了我的问题,这里也是:->注销视图(请求)(Pdb)n键错误:“服务器名称”