Exemplo n.º 1
0
def add_project(request):
    """
    新增项目
    :param request:
    :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'))
            msg = project_info_logic(**project_info)
            return HttpResponse(get_ajax_msg(msg, '/api/project_list/1/'))

        elif request.method == 'GET':
            manage_info = {'account': account}
            return render_to_response('add_project.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 2
0
def env_set(request):
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                env_lists = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logging.error(
                    '环境信息解析异常:{env_lists}'.format(env_lists=env_lists))
                return HttpResponse('环境信息查询异常,请重试')
            msg = env_data_logic(**env_lists)
            return HttpResponse(get_ajax_msg(msg, 'ok'))

        elif request.method == 'GET':
            return render_to_response(
                'env_list.html', {'account': request.session["now_account"]})

    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 3
0
def add_project(request):
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                project_info = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logger.error('项目信息解析异常: {project_info}'.format(project_info=project_info))
                return HttpResponse('项目信息新增异常')
            msg = project_info_logic(**project_info)
            return HttpResponse(get_ajax_msg(msg, '项目添加成功'))

        elif request.method == 'GET':
            manage_info = {
                'account': request.session["now_account"]
            }
            return render_to_response('add_project.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 4
0
def add_case_hikcentral(request):
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                testcase_info = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logger.error('用例信息解析异常:{testcase_info}'.format(testcase_info=testcase_info))
                return '用例信息解析异常'
            msg = case_info_logic(**testcase_info)
            return HttpResponse(get_ajax_msg(msg, '用例添加成功'))
        elif request.method == 'GET':
            manage_info = {
                'account': request.session["now_account"],
                'project': ProjectInfo.objects.all().values('project_name').order_by('-create_time')
            }
            return render_to_response('add_xml_case.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 5
0
def add_task(request):
    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('定时任务信息解析异常,请重试')
            msg = task_logic(**kwargs)
            return HttpResponse(get_ajax_msg(msg, '任务添加成功'))
        elif request.method == 'GET':
            info = {
                'env': EnvInfo.objects.all().order_by('-create_time'),
                'project': ProjectInfo.objects.all().order_by('-create_time')
            }
            return render_to_response('add_task.html', info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 6
0
def add_case(request):
    """
    新增用例
    :param request:
    :return:
    """
    account = request.session["now_account"]
    if request.is_ajax():
        testcase_info = json.loads(request.body.decode('utf-8'))
        msg = case_info_logic(**testcase_info)
        print("this is ",msg)
        return HttpResponse(get_ajax_msg(msg, '/api/test_list/1/'))
    elif request.method == 'GET':
        manage_info = {
            'account': account,
            'project': ProjectInfo.objects.all().values('project_name').order_by('-create_time')
        }
        return render_to_response('add_case.html', manage_info)
Exemplo n.º 7
0
def env_set(request):
    """
    环境设置
    :param request:
    :return:
    """
    if request.session.get('login_status'):
        account = request.session["now_account"]
        if request.is_ajax():
            env_lists = json.loads(request.body.decode('utf-8'))
            msg = env_data_logic(**env_lists)
            return HttpResponse(get_ajax_msg(msg, 'ok'))

        elif request.method == 'GET':
            return render_to_response('env_list.html', {'account': account})

    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 8
0
def edit_suite(request, id=None):
    account = request.session["now_account"]
    if request.is_ajax():
        kwargs = json.loads(request.body.decode('utf-8'))
        msg = edit_suite_data(**kwargs)
        return HttpResponse(get_ajax_msg(msg, '/api/suite_list/1/'))

    suite_info = TestSuite.objects.get(id=id)
    manage_info = {
        'account':
        account,
        'info':
        suite_info,
        'project':
        ProjectInfo.objects.all().values('project_name').order_by(
            '-create_time')
    }
    return render_to_response('edit_suite.html', manage_info)
Exemplo n.º 9
0
def add_module(request):
    if request.session.get('login_status'):
        if request.is_ajax():
            try:
                module_info = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logger.error(
                    '模块信息解析异常:{module_info}'.format(module_info=module_info))
            msg = module_info_logic(**module_info)
            return HttpResponse(get_ajax_msg(msg, '模块添加成功'))
        elif request.method == 'GET':
            manage_info = {
                'account': request.session["now_account"],
                'data': ProjectInfo.objects.all().values('project_name')
            }
            return render_to_response('add_module.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 10
0
def load_suite(request):
    account = request.session["now_account"]
    if request.is_ajax():
        params = json.loads(request.body.decode('utf-8'))
        project = params.get('test', {}).get('name', {}).get('project')
        if not project:
            return ''
        project_info = ProjectInfo.objects.get(project_name__exact=project)

        suites = TestSuite.objects.filter(belong_project_id=project_info.id). \
            values_list('id', 'suite_name').order_by('-create_time')
        suites = list(suites)
        string = ''
        for value in suites:
            string = string + str(value[0]) + '^=' + value[1] + 'replaceFlag'
        result = string[:len(string) - 11]

        return HttpResponse(get_ajax_msg(result, '/api/test_list/1/'))
Exemplo n.º 11
0
def add_project(request):
    """
    新增项目
    :param request:
    :return:
    """
    account = request.session["now_account"]
    if request.is_ajax():
        project_info = json.loads(request.body.decode('utf-8'))
        project_info['creator'] = account
        msg = project_info_logic(**project_info)
        return HttpResponse(get_ajax_msg(msg, '/api/project_list/1/'))

    elif request.method == 'GET':
        manage_info = {
            'account': account,
            'configs': TestCaseInfo.objects.filter(type=2).order_by('-create_time')
        }
        return render_to_response('add_project.html', manage_info)
Exemplo n.º 12
0
def add_config(request):
    if request.session.get('login_status'):
        if request.is_ajax():
            testconfig_lists = json.loads(request.body.decode('utf-8'))
            logger.debug('处理前配置信息:{testconfig_lists}'.format(
                testconfig_lists=testconfig_lists))
            msg = config_info_logic(**testconfig_lists)
            return HttpResponse(get_ajax_msg(msg, '配置添加成功'))
        elif request.method == 'GET':
            manage_info = {
                'account':
                request.session["now_account"],
                'project':
                ProjectInfo.objects.all().values('project_name').order_by(
                    '-create_time')
            }
            return render_to_response('add_config.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 13
0
def add_task(request):
    """
    添加任务
    :param request:
    :return:
    """

    account = request.session["now_account"]
    if request.is_ajax():
        kwargs = json.loads(request.body.decode('utf-8'))
        msg = task_logic(**kwargs)
        return HttpResponse(get_ajax_msg(msg, '/api/periodictask/1/'))
    elif request.method == 'GET':
        info = {
            'account': account,
            'env': EnvInfo.objects.all().order_by('-create_time'),
            'project': ProjectInfo.objects.all().order_by('-create_time')
        }
        return render_to_response('add_task.html', info)
Exemplo n.º 14
0
def add_module(request):
    """
    新增模块
    :param request:
    :return:
    """
    account = request.session["now_account"]
    if request.is_ajax():
        module_info = json.loads(request.body.decode('utf-8'))
        module_info['creator'] = account
        msg = module_info_logic(**module_info)
        return HttpResponse(get_ajax_msg(msg, '/api/module_list/1/'))
    elif request.method == 'GET':
        manage_info = {
            'account': account,
            'data': ProjectInfo.objects.all().values('project_name'),
            'configs': TestCaseInfo.objects.filter(type=2).order_by('-create_time')
        }
        return render_to_response('add_module.html', manage_info)
Exemplo n.º 15
0
def add_suite(request):
    if request.session.get('login_status'):
        account = request.session["now_account"]
        if request.is_ajax():
            kwargs = json.loads(request.body.decode('utf-8'))
            msg = add_suite_data(**kwargs)
            return HttpResponse(get_ajax_msg(msg, '/api/suite_list/1/'))

        elif request.method == 'GET':
            manage_info = {
                'account':
                account,
                'project':
                ProjectInfo.objects.all().values('project_name').order_by(
                    '-create_time')
            }
            return render_to_response('add_suite.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 16
0
def edit_service_config(request):
    account = request.session["now_account"]
    if request.method == 'GET':
        id = request.GET.get('id')
        service_info = ServiceConfig.objects.get(id=id)
        details = ServiceConfigDetail.objects.filter(service_config_id=id)
        details = list(details)
        info = {
            'account': account,
            'info': service_info,
            'details': details,
            'env': EnvInfo.objects.all().order_by('-create_time'),
            'project': ProjectInfo.objects.all().order_by('-create_time')
        }
        return render_to_response('edit_service_config.html', info)
    elif request.is_ajax():
        kwargs = json.loads(request.body.decode('utf-8'))
        kwargs['modifier'] = account
        msg = update_service_config_data(**kwargs)
        return HttpResponse(get_ajax_msg(msg, '/api/service_config_list/1/'))
Exemplo n.º 17
0
def add_config(request):
    """
    新增配置
    :param request:
    :return:
    """
    if request.session.get('login_status'):
        account = request.session["now_account"]
        if request.is_ajax():
            testconfig_info = json.loads(request.body.decode('utf-8'))
            msg = config_info_logic(**testconfig_info)
            return HttpResponse(get_ajax_msg(msg, '/api/config_list/1/'))
        elif request.method == 'GET':
            manage_info = {
                'account': account,
                'project': ProjectInfo.objects.all().values('project_name').order_by('-create_time')
            }
            return render_to_response('add_config.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 18
0
def add_module(request):
    """
    新增模块
    :param request:
    :return:
    """
    if request.session.get('login_status'):
        account = request.session["now_account"]
        if request.is_ajax():
            module_info = json.loads(request.body.decode('utf-8'))
            msg = module_info_logic(**module_info)
            return HttpResponse(get_ajax_msg(msg, '/api/module_list/1/'))
        elif request.method == 'GET':
            manage_info = {
                'account': account,
                'data': ProjectInfo.objects.all().values('project_name')
            }
            return render_to_response('add_module.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 19
0
def edit_config(request):
    if request.session.get('login_status'):
        if request.is_ajax():
            testconfig_lists = json.loads(request.body.decode('utf-8'))
            msg = config_info_logic(type=False, **testconfig_lists)
            return HttpResponse(get_ajax_msg(msg, '配置更新成功'))

        elif request.method == 'POST':
            id = request.POST.get('id')
            account = request.POST.get('account')
            test_info = TestCaseInfo.objects.get_case_by_id(id)
            request = eval(test_info[0].request)
            manage_info = {
                'account': account,
                'info': test_info[0],
                'request': request['config']
            }
            return render_to_response('edit_config.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 20
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/")
Exemplo n.º 21
0
def test_logic_list(request, id):
    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_logic_data(test_info.pop('id'), account, user_type)
        elif test_info.get('mode') == 'copy':
            msg = copy_test_logic_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(
            TestCaseLogicInfo, filter_query, '/api/test_logic_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_logic_list.html', manage_info)
Exemplo n.º 22
0
def edit_case(request):
    if request.session.get('login_status'):
        if request.is_ajax():
            testcase_lists = json.loads(request.body.decode('utf-8'))
            msg = case_info_logic(type=False, **testcase_lists)
            return HttpResponse(get_ajax_msg(msg, '用例更新成功'))

        elif request.method == 'POST':
            id = request.POST.get('id')
            account = request.POST.get('account')
            test_info = TestCaseInfo.objects.get_case_by_id(id)
            request = eval(test_info[0].request)
            manage_info = {
                'account': account,
                'info': test_info[0],
                'request': request['test'],
                'project': ProjectInfo.objects.all().values('pro_name').order_by('-create_time')
            }
            return render_to_response('edit_case.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 23
0
def add_case(request):
    """
    新增用例
    :param request:
    :return:
    """
    account = request.session["now_account"]
    if request.is_ajax():
        testcase_info = json.loads(request.body.decode('utf-8'))
        msg = case_info_logic(**testcase_info)
        return HttpResponse(get_ajax_msg(msg, '/api/test_list/1/'))
    elif request.method == 'GET':
        query_data = {}
        devops_modules =devops_api.get_module(query_data).get('data')
        # devops_modules =[]
        manage_info = {
            'account': account,
            'project': ProjectInfo.objects.all().values('project_name').order_by('-create_time'),
            'env': EnvInfo.objects.all().order_by('-create_time'),
            'devops_modules': devops_modules
        }
        return render_to_response('add_case.html', manage_info)
Exemplo n.º 24
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)
Exemplo n.º 25
0
def edit_case(request, id=None):
    """
    编辑用例
    :param request:
    :param id:
    :return:
    """

    account = request.session["now_account"]
    if request.is_ajax():
        testcase_lists = json.loads(request.body.decode('utf-8'))
        msg = case_info_logic(type=False, **testcase_lists)
        return HttpResponse(get_ajax_msg(msg, '/api/test_list/1/'))

    test_info = TestCaseInfo.objects.get_case_by_id(id)
    request = eval(test_info[0].request)
    print('---------------')
    if 'data' in request['test']['request']:
        str_test_data = request['test']['request']['data']
        if '=' in str_test_data:
            dic_test_data = str_to_post_data(str_test_data)
            request['test']['request']['data'] = dic_test_data
            print(request['test']['request']['data'])
    print('---------------')
    include = eval(test_info[0].include)
    manage_info = {
        'account':
        account,
        'info':
        test_info[0],
        'request':
        request['test'],
        'include':
        include,
        'project':
        ProjectInfo.objects.all().values('project_name').order_by(
            '-create_time')
    }
    return render_to_response('edit_case.html', manage_info)
Exemplo n.º 26
0
def edit_case(request, id=None):
    """
    编辑用例
    :param request:
    :param id:
    :return:
    """
    if request.session.get('login_status'):
        acount = request.session["now_account"]
        if request.is_ajax():
            try:
                testcase_lists = json.loads(request.body.decode('utf-8'))
            except ValueError:
                logger.error('用例信息解析异常:{testcase_lists}'.format(
                    testcase_lists=testcase_lists))
                return HttpResponse('用例信息解析异常')
            msg = case_info_logic(type=False, **testcase_lists)
            return HttpResponse(get_ajax_msg(msg, '/api/test_list/1/'))

        test_info = TestCaseInfo.objects.get_case_by_id(id)
        request = eval(test_info[0].request)
        include = eval(test_info[0].include)
        manage_info = {
            'account':
            acount,
            'info':
            test_info[0],
            'request':
            request['test'],
            'include':
            include,
            'project':
            ProjectInfo.objects.all().values('project_name').order_by(
                '-create_time')
        }
        return render_to_response('edit_case.html', manage_info)

    else:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 27
0
def test_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/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:
        return HttpResponseRedirect("/api/login/")
Exemplo n.º 28
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'))
        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/test_list/', id)
        print(TestCaseInfo)
        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')
        }
        print(manage_info)
        return render_to_response('test_list.html', manage_info)
        print(00000000000)
Exemplo n.º 29
0
def edit_case(request, id=None):
    """
    编辑用例
    :param request:
    :param id:
    :return:
    """

    account = request.session["now_account"]
    if request.is_ajax():
        testcase_lists = json.loads(request.body.decode('utf-8'))
        msg = case_info_logic(type=False, **testcase_lists)
        return HttpResponse(get_ajax_msg(msg, '/api/test_list/1/'))

    test_info = TestCaseInfo.objects.get_case_by_id(id)
    request = eval(test_info[0].request)
    include = eval(test_info[0].include)
    # 新增判断data数据为字符串时候,改成字典{"x":"FilesOnly"}显示在前端页面
    if request['test']['request'].get('data'):
        tmp_str = request['test']['request']['data']
        if isinstance(tmp_str, str):
            request['test']['request'].pop('data')
            request['test']['request']['data'] = {tmp_str: 'FilesOnly'}
    manage_info = {
        'account':
        account,
        'info':
        test_info[0],
        'request':
        request['test'],
        'include':
        include,
        'project':
        ProjectInfo.objects.all().values('project_name').order_by(
            '-create_time')
    }
    return render_to_response('edit_case.html', manage_info)
Exemplo n.º 30
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)