Python Django覆盖注销测试

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],

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],{"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键错误:“服务器名称”