Exemple #1
0
def test_list(request, id):
    """
    用例列表
    :param request:
    :param id: str or int:当前页
    :return:
    """

    account = request.session["now_account"]
    if request.is_ajax():
        test_info = json.loads(request.body.decode('utf-8'))
        if test_info.get('mode') == 'del':
            msg = del_test_data(test_info.pop('id'))
            return HttpResponse(get_ajax_msg(msg, 'ok'))
        if test_info.get('mode') == 'copy':
            msg = copy_test_data(
                test_info.get('data').pop('index'),
                test_info.get('data').pop('name'))
            return HttpResponse(get_ajax_msg(msg, 'ok'))

        # 新增ajax(查询用例)逻辑处理
        filter_query = set_filter_session(request)
        test_list = get_pager_info(TestCaseInfo, filter_query,
                                   '/api/test_list/', id)
        result_list = list()
        results = serializers.serialize('json',
                                        test_list[1],
                                        ensure_ascii=False)  # 数据库对象转化json
        result = [result.get('fields')
                  for result in json.loads(results)]  # 提取数据库字段
        testcase_id = [i.get('pk') for i in json.loads(results)]
        for num, i in enumerate(result):  # 将id字段添加到字段中
            i['id'] = testcase_id[num]
            i['url'] = convert_eval_url(i.get('request'))
            i['belong_module_name'] = ModuleInfo.objects.get_module_name(
                i.get('belong_module'), type=False).module_name
        result_list.append(result)
        result_list.append(str(test_list[0]))
        return JsonResponse(result_list, safe=False)

    else:
        filter_query = set_filter_session(request)
        test_list = get_pager_info(TestCaseInfo, filter_query,
                                   '/api/test_list/', id)
        # 获取被引用用例id列表
        manage_info = {
            'account': account,
            'test': test_list[1],
            'page_list': test_list[0],
            'info': filter_query,
            'env': EnvInfo.objects.all().order_by('-create_time'),
            'project': ProjectInfo.objects.all().order_by('-update_time')
        }
        return render_to_response('test_list.html', manage_info)
Exemple #2
0
def report_list(request, id):
    """
    报告列表
    :param request:
    :param id: str or int:当前页
    :return:
    """
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                report_info = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logging.error(
                    '报告信息解析异常:{report_info}'.format(report_info=report_info))
                return HttpResponse('报告信息解析异常')
            if report_info.get('mode') == 'del':
                msg = del_report_data(report_info.pop('id'))
            return HttpResponse(get_ajax_msg(msg, 'ok'))
        else:
            filter_query = set_filter_session(request)
            report_list = get_pager_info(TestReports, filter_query,
                                         '/api/report_list/', id)
            manage_info = {
                'account': request.session["now_account"],
                'report': report_list[1],
                'page_list': report_list[0],
                'info': filter_query
            }
            return render_to_response('report_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
def periodictask(request, id):
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                kwargs = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logging.error('定时任务信息解析异常: {kwargs}'.format(kwargs=kwargs))
                return HttpResponse('定时任务信息解析异常,请重试')
            mode = kwargs.pop('mode')
            id = kwargs.pop('id')
            msg = delete_task(id) if mode == 'del' else change_task_status(
                id, mode)
            return HttpResponse(get_ajax_msg(msg, 'ok'))
        else:
            filter_query = set_filter_session(request)
            task_list = get_pager_info(PeriodicTask, filter_query,
                                       '/api/periodictask/', id)
            manage_info = {
                'account': request.session["now_account"],
                'task': task_list[1],
                'page_list': task_list[0],
                'info': filter_query
            }
        return render_to_response('periodictask_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemple #4
0
def webhook_list(request, id):
    """

    :param request:
    :param id:
    :return:
    """
    if request.session.get('login_status'):
        account = request.session["now_account"]
        if request.is_ajax():
            webhook_info = json.loads(request.body.decode('utf-8'))
            pro_id = webhook_info.get('webhook').get('pro_id')
            res = generate_webhook_token(pro_id)
            manage_info = {"token": ['ok', res.get('msg')]}
            return HttpResponse(
                get_ajax_msg(
                    manage_info.get('token')[0],
                    manage_info.get('token')[1]))

        else:
            filter_query = set_filter_session(request)
            test_list = get_pager_info(WebHooKInfo, filter_query,
                                       '/api/webhook_list/', id)
            manage_info = {
                'account': account,
                'test': test_list[1],
                'page_list': test_list[0],
                'info': filter_query,
                'env': EnvInfo.objects.all().order_by('-create_time')
            }

            return render_to_response('webhook_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemple #5
0
def module_list(request, id):
    """
    模块列表
    :param request:
    :param id: str or int:当前页
    :return:
    """
    account = request.session["now_account"]
    if request.is_ajax():
        module_info = json.loads(request.body.decode('utf-8'))
        if 'mode' in module_info.keys():  # del module
            msg = del_module_data(module_info.pop('id'))
        else:
            msg = module_info_logic(type=False, **module_info)
        return HttpResponse(get_ajax_msg(msg, 'ok'))
    else:
        filter_query = set_filter_session(request)
        module_list = get_pager_info(
            ModuleInfo, filter_query, '/api/module_list/', id)
        manage_info = {
            'account': account,
            'module': module_list[1],
            'page_list': module_list[0],
            'info': filter_query,
            'sum': module_list[2],
            'env': EnvInfo.objects.all().order_by('-create_time'),
            'project': ProjectInfo.objects.all().order_by('-update_time')
        }
        return render_to_response('module_list.html', manage_info)
Exemple #6
0
def report_list(request, id):
    """
    报告列表
    :param request:
    :param id: str or int:当前页
    :return:
    """

    if request.is_ajax():
        report_info = json.loads(request.body.decode('utf-8'))

        if report_info.get('mode') == 'del':
            msg = del_report_data(report_info.pop('id'))
        return HttpResponse(get_ajax_msg(msg, 'ok'))
    else:
        filter_query = set_filter_session(request)
        report_list = get_pager_info(
            TestReports, filter_query, '/api/report_list/', id)
        manage_info = {
            'account': request.session["now_account"],
            'report': report_list[1],
            'page_list': report_list[0],
            'info': filter_query
        }
        return render_to_response('report_list.html', manage_info)
def project_list(request, id):
    """
    项目列表
    :param request:
    :param id: str or int:当前页
    :return:
    """
    if request.session.get('login_status'):
        account = request.session["now_account"]
        if request.is_ajax():
            project_info = json.loads(request.body.decode('utf-8'))
            if 'mode' in project_info.keys():
                msg = del_project_data(project_info.pop('id'))
            else:
                msg = project_info_logic(type=False, **project_info)
            return HttpResponse(get_ajax_msg(msg, 'ok'))
        else:
            filter_query = set_filter_session(request)
            pro_list = get_pager_info(
                ProjectInfo, filter_query, '/api/project_list/', id)
            manage_info = {
                'account': account,
                'project': pro_list[1],
                'page_list': pro_list[0],
                'info': filter_query,
                'sum': pro_list[2],
                'env': EnvInfo.objects.all().order_by('-create_time')
            }
            return render_to_response('project_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemple #8
0
def periodictask(request, id):
    """
    定时任务列表
    :param request:
    :param id: str or int:当前页
    :return:
    """

    account = request.session["now_account"]
    if request.is_ajax():
        kwargs = json.loads(request.body.decode('utf-8'))
        mode = kwargs.pop('mode')
        id = kwargs.pop('id')
        msg = delete_task(id) if mode == 'del' else change_task_status(id, mode)
        return HttpResponse(get_ajax_msg(msg, 'ok'))
    else:
        filter_query = set_filter_session(request)
        task_list = get_pager_info(
            PeriodicTask, filter_query, '/api/periodictask/', id)
        manage_info = {
            'account': account,
            'task': task_list[1],
            'page_list': task_list[0],
            'info': filter_query
        }
    return render_to_response('periodictask_list.html', manage_info)
Exemple #9
0
def config_list(request, id):
    """
    配置列表
    :param request:
    :param id: str or int:当前页
    :return:
    """
    if request.session.get('login_status'):
        acount = request.session["now_account"]
        if request.is_ajax():
            try:
                test_info = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logging.error('配置信息解析异常:{test_info}'.format(test_info=test_info))
                return HttpResponse('配置信息解析异常')
            if test_info.get('mode') == 'del':
                msg = del_test_data(test_info.pop('id'))
            elif test_info.get('mode') == 'copy':
                msg = copy_test_data(test_info.get('data').pop('index'), test_info.get('data').pop('name'))
            return HttpResponse(get_ajax_msg(msg, 'ok'))
        else:
            filter_query = set_filter_session(request)
            test_list = get_pager_info(
                TestCaseInfo, filter_query, '/api/config_list/', id)
            manage_info = {
                'account': acount,
                'test': test_list[1],
                'page_list': test_list[0],
                'info': filter_query
            }
            return render_to_response('config_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
def module_list(request, id):
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                module_info = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logging.error(
                    '模块信息解析异常:{module_info}'.format(module_info=module_info))
                return HttpResponse('模块信息解析异常')
            if 'mode' in module_info.keys():  # del module
                msg = del_module_data(module_info.pop('id'))
            else:
                msg = module_info_logic(type=False, **module_info)
            return HttpResponse(get_ajax_msg(msg, 'ok'))
        else:
            filter_query = set_filter_session(request)
            module_list = get_pager_info(ModuleInfo, filter_query,
                                         '/api/module_list/', id)
            manage_info = {
                'account': request.session["now_account"],
                'module': module_list[1],
                'page_list': module_list[0],
                'info': filter_query,
                'sum': module_list[2],
                'env': EnvInfo.objects.all().order_by('-create_time')
            }
            return render_to_response('module_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
def config_list(request, id):
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                test_info = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logging.error(
                    '配置信息解析异常:{test_info}'.format(test_info=test_info))
                return HttpResponse('配置信息解析异常')
            if 'mode' in test_info.keys():
                msg = del_test_data(test_info.pop('id'))
            return HttpResponse(get_ajax_msg(msg, 'ok'))
        else:
            filter_query = set_filter_session(request)
            test_list = get_pager_info(TestCaseInfo, filter_query,
                                       '/api/config_list/', id)
            manage_info = {
                'account': request.session["now_account"],
                'test': test_list[1],
                'page_list': test_list[0],
                'info': filter_query
            }
            return render_to_response('config_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemple #12
0
def project_list(request, id):
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                project_info = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logging.debug('项目信息解析异常:{project_info}'.format(
                    project_info=project_info))
                return HttpResponse('项目信息解析异常')
            if 'mode' in project_info.keys():
                msg = del_project_data(project_info.pop('id'))
            else:
                msg = project_info_logic(type=False, **project_info)
            return HttpResponse(get_ajax_msg(msg, 'ok'))
        else:
            filter_query = set_filter_session(request)
            pro_list = get_pager_info(ProjectInfo, filter_query,
                                      '/api/project_list/', id)
            manage_info = {
                'account': request.session["now_account"],
                'project': pro_list[1],
                'page_list': pro_list[0],
                'info': filter_query,
                'sum': pro_list[2]
            }
            return render_to_response('project_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemple #13
0
def config_list(request, id):
    """
    配置列表
    :param request:
    :param id: str or int:当前页
    :return:
    """
    account = request.session["now_account"]
    if request.is_ajax():
        test_info = json.loads(request.body.decode('utf-8'))

        if test_info.get('mode') == 'del':
            msg = del_test_data(test_info.pop('id'))
        elif test_info.get('mode') == 'copy':
            msg = copy_test_data(test_info.get('data').pop('index'), test_info.get('data').pop('name'))
        return HttpResponse(get_ajax_msg(msg, 'ok'))
    else:
        filter_query = set_filter_session(request)
        test_list = get_pager_info(
            TestCaseInfo, filter_query, '/api/config_list/', id)
        manage_info = {
            'account': account,
            'test': test_list[1],
            'page_list': test_list[0],
            'info': filter_query,
            'project': ProjectInfo.objects.all().order_by('-update_time')
        }
        return render_to_response('config_list.html', manage_info)
Exemple #14
0
def suite_list(request, id):
    account = request.session["now_account"]
    if request.is_ajax():
        suite_info = json.loads(request.body.decode('utf-8'))

        if suite_info.get('mode') == 'del':
            msg = del_suite_data(suite_info.pop('id'))
        elif suite_info.get('mode') == 'copy':
            msg = copy_suite_data(
                suite_info.get('data').pop('index'),
                suite_info.get('data').pop('name'))
        return HttpResponse(get_ajax_msg(msg, 'ok'))
    else:
        filter_query = set_filter_session(request)
        pro_list = get_pager_info(TestSuite, filter_query, '/api/suite_list/',
                                  id)
        manage_info = {
            'account': account,
            'suite': pro_list[1],
            'page_list': pro_list[0],
            'info': filter_query,
            'sum': pro_list[2],
            'env': EnvInfo.objects.all().order_by('-create_time'),
            'project': ProjectInfo.objects.all().order_by('-update_time')
        }
        return render_to_response('suite_list.html', manage_info)
Exemple #15
0
def interface_list(request, id):
    """
    接口列表
    :param request:
    :param id: str or int:当前页
    :return:
    """
    if request.session.get('login_status'):
        acount = request.session["now_account"]
        filter_query = set_filter_session(request)

        if request.method == 'GET':
            if request.GET.get('interface_name') is None:
                test_list = get_pager_info(TestCaseInfo, filter_query,
                                           '/api/interface_list/', id)
                manage_info = {
                    'account': acount,
                    'test': test_list[1],
                    'page_list': test_list[0],
                    'info': filter_query,
                    'env': EnvInfo.objects.all().order_by('-create_time')
                }
                return render_to_response('interface_list.html', manage_info)
            else:
                filter_query['interface_name'] = request.GET.get(
                    'interface_name')
                test_list = get_pager_info(TestCaseInfo, filter_query,
                                           '/api/test_list/', id)
                manage_info = {
                    'account': acount,
                    'test': test_list[1],
                    'page_list': test_list[0],
                    'info': filter_query,
                    'env': EnvInfo.objects.all().order_by('-create_time')
                }
                return render_to_response('test_list.html', manage_info)
        else:
            if request.POST.get('interface_name') is not None:
                filter_query['interface_name'] = request.POST.get(
                    'interface_name')

                test_list = get_pager_info(TestCaseInfo, filter_query,
                                           '/api/interface_list/', id)
                manage_info = {
                    'account': acount,
                    'test': test_list[1],
                    'page_list': test_list[0],
                    'info': filter_query,
                    'env': EnvInfo.objects.all().order_by('-create_time')
                }
                return render_to_response('interface_list.html', manage_info)

    else:
        return HttpResponseRedirect("/api/login/")
def report_list(request, id):
    if request.session.get('login_status'):
        filter_query = set_filter_session(request)
        report_list = get_pager_info(TestReports, filter_query,
                                     '/api/report_list/', id)
        manage_info = {
            'account': request.session["now_account"],
            'report': report_list[1],
            'page_list': report_list[0],
            'info': filter_query
        }
        return render_to_response('report_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemple #17
0
def test_list(request, id):
    """
    用例列表
    :param request:
    :param id: str or int:当前页
    :return:
    """

    account = request.session["now_account"]
    user_type = request.session['user_type']
    if request.is_ajax():
        test_info = json.loads(request.body.decode('utf-8'))

        if test_info.get('mode') == 'del':
            msg = del_test_data(test_info.pop('id'), account, user_type)
        elif test_info.get('mode') == 'copy':
            msg = copy_test_data(test_info.get('data').pop('index'), test_info.get('data').pop('name'), account)
        return HttpResponse(get_ajax_msg(msg, 'ok'))

    else:
        filter_query = set_filter_session(request)

        if 'case_id' in request.POST.keys():
            filter_query['case_id'] = request.POST.get('case_id')
        if 'service_name' in request.POST.keys():
            filter_query['service_name'] = request.POST.get('service_name')

        test_list = get_pager_info(
            TestCaseInfo, filter_query, '/api/test_list/', id)
        manage_info = {
            'account': account,
            'test': test_list[1],
            'page_list': test_list[0],
            'info': filter_query,
            'env': EnvInfo.objects.all().order_by('-create_time'),
            'projects': ProjectInfo.objects.all().order_by('-update_time')
        }

        # 添加模块下拉
        modules = []
        if filter_query.get('belong_project') != 'All':
            modules = ModuleInfo.objects.filter(
                belong_project__project_name=filter_query.get('belong_project')).order_by('-create_time')

        manage_info['modules'] = modules

        return render_to_response('test_list.html', manage_info)
Exemple #18
0
def config_list(request, id):
    if request.session.get('login_status'):
        if request.is_ajax():
            test_info = json.loads(request.body.decode('utf-8'))
            if 'status' in test_info.keys():
                msg = change_status(TestCaseInfo, **test_info)
                return HttpResponse(get_ajax_msg(msg, '配置已更改!'))
        else:
            filter_query = set_filter_session(request)
            test_list = get_pager_info(TestCaseInfo, filter_query,
                                       '/api/config_list/', id)
            manage_info = {
                'account': request.session["now_account"],
                'test': test_list[1],
                'page_list': test_list[0],
                'info': filter_query
            }
            return render_to_response('config_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemple #19
0
def project_list(request, id):
    """
    项目列表
    :param request:
    :param id: str or int:当前页
    :return:
    """

    account = request.session["now_account"]
    user_type = request.session['user_type']
    if request.is_ajax():
        project_info = json.loads(request.body.decode('utf-8'))
        project_info['account'] = account
        project_info['user_type'] = user_type
        if 'mode' in project_info.keys():
            msg = del_project_data(project_info.pop('id'), account, user_type)
        else:
            msg = project_info_logic(type=False, **project_info)
        return HttpResponse(get_ajax_msg(msg, 'ok'))
    else:
        filter_query = set_filter_session(request)
        project_name = request.POST.get('project_name')
        if project_name is None:
            project_name = ''
        filter_query['project_name'] = project_name
        pro_list = get_pager_info(
            ProjectInfo, filter_query, '/api/project_list/', id)
        manage_info = {
            'account': account,
            'project': pro_list[1],
            'projects': ProjectInfo.objects.all().order_by('-update_time'),
            'page_list': pro_list[0],
            'info': filter_query,
            'sum': pro_list[2],
            'env': EnvInfo.objects.all().order_by('-create_time'),
            'project_all': ProjectInfo.objects.all().order_by('-update_time'),
            'configs': TestCaseInfo.objects.filter(type=2).order_by('-create_time')
        }
        return render_to_response('project_list.html', manage_info)
Exemple #20
0
def test_list(request, id):
    """
    用例列表
    :param request:
    :param id: str or int:当前页
    :return:
    """
    if request.session.get('login_status'):
        account = request.session["now_account"]
        if request.is_ajax():
            test_info = json.loads(request.body.decode('utf-8'))

            if test_info.get('mode') == 'del':
                msg = del_test_data(test_info.pop('id'))
            elif test_info.get('mode') == 'copy':
                msg = copy_test_data(
                    test_info.get('data').pop('index'),
                    test_info.get('data').pop('name'))
            return HttpResponse(get_ajax_msg(msg, 'ok'))

        else:
            filter_query = set_filter_session(request)

            if request.POST.get('level') is not None:
                filter_query['level'] = request.POST.get('level')

            test_list = get_pager_info(TestCaseInfo, filter_query,
                                       '/api/test_list/', id)
            manage_info = {
                'account': account,
                'test': test_list[1],
                'page_list': test_list[0],
                'info': filter_query,
                'env': EnvInfo.objects.all().order_by('-create_time')
            }
            return render_to_response('test_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemple #21
0
def module_list(request, id):
    if request.session.get('login_status'):
        if request.is_ajax():
            module_info = json.loads(request.body.decode('utf-8'))

            if 'status' in module_info.keys():
                msg = change_status(ModuleInfo, **module_info)
                return HttpResponse(get_ajax_msg(msg, '模块状态已更改!'))
            else:
                msg = module_info_logic(type=False, **module_info)
                return HttpResponse(get_ajax_msg(msg, '模块信息更新成功'))
        else:
            filter_query = set_filter_session(request)
            module_list = get_pager_info(ModuleInfo, filter_query,
                                         '/api/module_list/', id)
            manage_info = {
                'account': request.session["now_account"],
                'module': module_list[1],
                'page_list': module_list[0],
                'info': filter_query
            }
            return render_to_response('module_list.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")