def edit_case(request):
    if request.session.get('login_status'):
        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, '用例更新成功'))

        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('project_name').order_by(
                    '-create_time')
            }
            return render_to_response('edit_case.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Example #2
0
def add_case(request):
    """
    新增用例
    :param request:
    :return:
    """
    if request.session.get('login_status'):
        acount = request.session["now_account"]
        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, '/api/test_list/1/'))
        elif request.method == 'GET':
            manage_info = {
                'account':
                acount,
                'project':
                ProjectInfo.objects.all().values('project_name').order_by(
                    '-create_time')
            }
            return render_to_response('add_case.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Example #3
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)
    info = test_info[0].__dict__
    module_name = ModuleInfo.objects.get_module_by_id(info['belong_module_id'])[0].module_name
    config_info = TestCaseInfo.objects.get_case_by_moduleId(info['belong_module_id'],type=2)
    all_case_info = TestCaseInfo.objects.get_case_by_moduleId(info['belong_module_id'])
    logger.info("config_info : {}".format(config_info[1].name))
    manage_info = {
        'account': account,
        'info': info,
        'request': request,
        'include': include,
        'project': ProjectInfo.objects.all().values('project_name').order_by('-create_time'),
        'module' : ModuleInfo.objects.all().values().order_by('-create_time'),
        'config_info' : config_info,
        'all_case' : all_case_info,
        'module_name' : str(module_name)
    }
    return render_to_response('edit_case.html', manage_info)
Example #4
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)
    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)
Example #5
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/")
Example #6
0
def edit_case(request, id=None):
    """
    编辑用例
    :param request:
    :param id:
    :return:
    """

    account = request.session["now_account"]
    user_type = request.session['user_type']
    if request.is_ajax():
        testcase_lists = json.loads(request.body.decode('utf-8'))
        tastcase = testcase_lists.get('test').get('name')
        author = tastcase.get('author')
        project = tastcase.get('project')
        module = tastcase.get('module')
        if not validate_operate(account, author, user_type, project, module):
            return HttpResponse(get_ajax_msg("非创建人或负责人不能修改,请检查", '/api/test_list/1/'))

        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)

    project = test_info[0].belong_project
    module = test_info[0].belong_module

    module_info = ModuleInfo.objects.filter(belong_project__project_name=project).order_by('-create_time')
    modules = list(module_info)

    case_info = TestCaseInfo.objects.filter(belong_project=project, belong_module=module, type=1).order_by('-create_time')
    cases = list(case_info)

    configs = TestCaseInfo.objects.filter(belong_project=project, belong_module=module, type=2).order_by('-create_time')
    configs = list(configs)
    query_data = {}
    devops_modules = devops_api.get_module(query_data).get('data')
    # devops_modules = []
    manage_info = {
        'account': account,
        'info': test_info[0],
        'request': request['test'],
        'include': include,
        'project': ProjectInfo.objects.all().values('project_name').order_by('-create_time'),
        'modules': modules,
        'cases': cases,
        'configs': configs,
        'env': EnvInfo.objects.all().order_by('-create_time'),
        'devops_modules': devops_modules
    }
    return render_to_response('edit_case.html', manage_info)
Example #7
0
def add_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(**testcase_lists)
            return HttpResponse(get_ajax_msg(msg, '用例添加成功'))
        elif request.method == 'GET':
            manage_info = {
                'account': request.session["now_account"],
                'project': ProjectInfo.objects.all().values('pro_name').order_by('-create_time')
            }
            return render_to_response('add_case.html', manage_info)
    else:
        return HttpResponseRedirect("/api/login/")
Example #8
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':
        manage_info = {
            'account': account,
            'project': ProjectInfo.objects.all().values('project_name').order_by('-create_time')
        }
        return render_to_response('add_case.html', manage_info)
Example #9
0
def edit_case(request, id=None):
    """
    编辑用例
    :param request:
    :param id:
    :return:
    """
    if request.session.get('login_status'):
        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不是key&value形式
        request_data = request['test']
        request_value = request_data['request']
        logger.info(request_value['data'])
        if isinstance(request_value['data'], str):
            logger.info("request_value['data'] is str")
        if 'data' in request_value.keys() and isinstance(
                request_value['data'], str):
            data_body = request_value['data']
            del request_value['data']
            request_value.setdefault('xml', {'body': data_body})

        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)

    else:
        return HttpResponseRedirect("/api/login/")
Example #10
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)