示例#1
0
 def post(self, request):
     """
     修改项目
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     # 查找项目是否存在
     try:
         obj = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
     # 查找是否相同名称的项目
     obi = Project.objects.filter(name=data["name"]).exclude(
         id=data["project_id"])
     if len(obi) == 0:
         serializer = ProjectDeserializer(data=data)
         with transaction.atomic():
             if serializer.is_valid():
                 # 修改项目
                 serializer.update(instance=obj, validated_data=data)
                 # 记录动态
                 record_dynamic(project=data["project_id"],
                                _type="修改",
                                operationObject="项目",
                                user=request.user.pk,
                                data=data["name"])
                 return JsonResponse(code_msg=GlobalStatusCode.success())
             else:
                 return JsonResponse(code_msg=GlobalStatusCode.fail())
     else:
         return JsonResponse(code_msg=GlobalStatusCode.name_repetition())
示例#2
0
    def post(self,request):
        """
        更新用例的分组
        :param request:
        :return:
        """
        data=JSONParser().parse(request)
        project=get_availability_project(data,request.user)
        result=parameter_ids_check(data) if isinstance(project,Project) else project
        if result:
            return result
        try:
            group=TestCaseGroup.objects.get(id=data['test_case_group_id'],project=project.id)
        except ObjectDoesNotExist:
            return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST,msg='测试用例分组不存在')

        id_list=Q()
        for i in data['ids']:
            id_list=id_list|Q(id=i)
        case_list=AutomationTestCase.objects.filter(id_list,project=project.id)

        case_name=[]
        for j in case_list:
            case_name.append(j.case_name)

        with transaction.atomic():
            case_list.update(test_case_group=group)
            record_dynamic(project=project, _type='修改', operation_object='测试用例', user=request.user.pk,
                           data='修改测试用例分组 %s' % case_name)
            return JsonResponse(code=code.CODE_SUCCESS)
示例#3
0
 def post(self, request):
     """
     删除接口
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     project = get_availability_project(data, request.user)
     result = parameter_ids_check(data) if isinstance(project,
                                                      Project) else project
     if result:
         return result
     id_list = Q()
     for i in data['ids']:
         id_list = id_list | Q(id=i)
     api_list = APIInfo.objects.filter(id_list, project=data['project_id'])
     name_list = []
     for j in api_list:
         name_list.append(str(j.name))
     with transaction.atomic():
         api_list.delete()
         record_dynamic(project=project.id,
                        _type='删除',
                        operation_object='接口',
                        user=request.user.pk,
                        data="删除接口分组,列表“%s”" % name_list)
         return JsonResponse(code=code.CODE_SUCCESS)
示例#4
0
 def post(self, request):
     """
     修改接口分组名称
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         pro_data = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     obi = ApiGroupLevelFirst.objects.filter(id=data["id"], project=data["project_id"])
     if obi:
         name = obi[0].name
         obi.delete()
     else:
         return JsonResponse(code="999991", msg="分组不存在!")
     record_dynamic(project=data["project_id"],
                    _type="删除", operationObject="接口分组", user=request.user.pk, data="删除接口分组“%s”" % name)
     return JsonResponse(code="999999", msg="成功!")
示例#5
0
 def post(self, request):
     """
     新增接口分组
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         obj = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(obj)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     serializer = ApiGroupLevelFirstDeserializer(data=data)
     if serializer.is_valid():
         serializer.save(project=obj)
     else:
         return JsonResponse(code="999998", msg="失败!")
     record_dynamic(project=serializer.data.get("id"),
                    _type="添加", operationObject="接口分组", user=request.user.pk,
                    data="新增接口分组“%s”" % data["name"])
     return JsonResponse(data={
         "group_id": serializer.data.get("id")
     }, code="999999", msg="成功!")
 def post(self, request):
     """
     添加Host
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         obj = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
     obi = GlobalHost.objects.filter(name=data["name"],
                                     project=data["project_id"])
     if obi:
         return JsonResponse(code_msg=GlobalStatusCode.name_repetition())
     else:
         serializer = GlobalHostSerializer(data=data)
         with transaction.atomic():
             if serializer.is_valid():
                 # 外键project_id
                 serializer.save(project=obj)
                 # 记录动态
                 record_dynamic(project=data["project_id"],
                                _type="添加",
                                operationObject="域名",
                                user=request.user.pk,
                                data=data["name"])
                 return JsonResponse(
                     data={"host_id": serializer.data.get("id")},
                     code_msg=GlobalStatusCode.success())
             return JsonResponse(code_msg=GlobalStatusCode.fail())
示例#7
0
 def post(self, request):
     """
     修改接口
     :param request:
     :return:
     """
     data=request.data
     result = self.parameter_check(data)
     if result:
         return result
     data["userUpdate"] = request.user.pk
     data["params"]="{}" if not "params" in data or not data["params"] else data["params"]
     try:
         pro_data = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     api_name = ApiInfo.objects.filter(name=data["name"], project=data["project_id"]).exclude(id=data["id"])
     if len(api_name):
         return JsonResponse(code="999997", msg="存在相同名称!")
     # data["userUpdate"] = request.user
     result=ApiService.updateApi(data)
     if result:
         record_dynamic(project=data["project_id"],
                            _type="修改", operationObject="接口", user=request.user.pk,
                            data="修改接口“%s”" % data["name"])
         api_record = ApiOperationHistory(api=ApiInfo.objects.get(id=data['id']),
                                          user=User.objects.get(id=request.user.pk),
                                          description="修改接口\"%s\"" % data["name"])
         api_record.save()
         return JsonResponse(code="999999", msg="执行成功!")
     return JsonResponse(code="999996", msg="执行失败!")
示例#8
0
 def post(self, request):
     """
     添加或修改邮件发送配置
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         obi = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(obi)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     serialize = AutomationReportSendConfigDeserializer(data=data)
     if serialize.is_valid():
         try:
             obj = AutomationReportSendConfig.objects.get(project=data["project_id"])
             serialize.update(instance=obj, validated_data=data)
         except ObjectDoesNotExist:
             serialize.save(project=obi)
         # 记录动态
         record_dynamic(project=data["project_id"],
                        _type="添加", operationObject="邮箱", user=request.user.pk, data="添加邮箱配置")
         return JsonResponse(code="999999", msg="成功!")
     return JsonResponse(code="999996", msg="参数有误!")
示例#9
0
 def post(self, request):
     """
     删除域名
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         pro_data = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     try:
         for j in data["ids"]:
             obj = GlobalHost.objects.filter(id=j)
             if obj:
                 name = obj[0].name
                 obj.delete()
                 record_dynamic(project=data["project_id"],
                                _type="删除",
                                operationObject="域名",
                                user=request.user.pk,
                                data=name)
         return JsonResponse(code="999999", msg="成功!")
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
示例#10
0
def del_api(request):
    """
    删除接口
    project_id  项目ID
    api_ids 接口ID列表
    :return:
    """
    project_id = request.POST.get("project_id")
    if not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    ids = request.POST.get("api_ids")
    id_list = ids.split(",")
    for i in id_list:
        if not i.isdecimal():
            return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        for j in id_list:
            obi = ApiInfo.objects.filter(id=j, project=project_id)
            if len(obi) != 0:
                name = obi[0].name
                obi.delete()
                record_dynamic(project_id, "删除", "接口", "删除接口“%s”" % name)
        return JsonResponse(code_msg=GlobalStatusCode.success())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
示例#11
0
 def post(self, request):
     """
     添加Host
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         obj = Project.objects.get(id=data["project_id"])
         if not request.user.is_superuser and obj.user.is_superuser:
             return JsonResponse(code="999983", msg="无操作权限!")
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(obj)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     obi = GlobalHost.objects.filter(name=data["name"], project=data["project_id"])
     if obi:
         return JsonResponse(code="999997", msg="存在相同名称!")
     else:
         serializer = GlobalHostSerializer(data=data)
         with transaction.atomic():
             if serializer.is_valid():
                 # 外键project_id
                 serializer.save(project=obj)
                 # 记录动态
                 record_dynamic(project=data["project_id"],
                                _type="添加", operationObject="域名", user=request.user.pk, data=data["name"])
                 return JsonResponse(data={
                     "host_id": serializer.data.get("id")
                 }, code="999999", msg="成功!")
             return JsonResponse(code="999998", msg="失败!")
 def post(self, request):
     """
     启用项目
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     # 查找项目是否存在
     try:
         obj = Project.objects.get(id=data["project_id"])
         if not request.user.is_superuser and obj.user.is_superuser:
             return JsonResponse(code="999983", msg=str(obj) + "无操作权限!")
         obj.status = True
         obj.save()
         record_dynamic(project=data["project_id"],
                        _type="禁用",
                        operationObject="项目",
                        user=request.user.pk,
                        data=obj.name)
         return JsonResponse(code="999999", msg="成功")
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
示例#13
0
 def post(self, request):
     """
     删除邮箱配置
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         pro_data = Project.objects.get(id=data["project_id"])
         if not request.user.is_superuser and pro_data.user.is_superuser:
             return JsonResponse(code="999983", msg="无操作权限!")
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     AutomationReportSendConfig.objects.filter(
         project=data["project_id"]).delete()
     # 记录动态
     record_dynamic(project=data["project_id"],
                    _type="删除",
                    operationObject="邮箱",
                    user=request.user.pk,
                    data="删除邮箱配置")
     return JsonResponse(code="999999", msg="成功!")
示例#14
0
 def post(self, request):
     """
     新增项目
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     data["user"] = request.user.pk
     project_serializer = ProjectDeserializer(data=data)
     with transaction.atomic():
         if project_serializer.is_valid():
             # 保持新项目
             project_serializer.save()
             # 记录动态
             record_dynamic(project=project_serializer.data.get("id"),
                            _type="添加",
                            operationObject="项目",
                            user=request.user.pk,
                            data=data["name"])
             # 创建项目的用户添加为该项目的成员
             self.add_project_member(project_serializer.data.get("id"),
                                     request.user.pk)
             return JsonResponse(
                 data={"project_id": project_serializer.data.get("id")},
                 code_msg=GlobalStatusCode.success())
         else:
             return JsonResponse(code_msg=GlobalStatusCode.fail())
示例#15
0
    def post(self, request):
        data = JSONParser().parse(request)
        user = request.user
        project = get_availability_project(data, request.user)
        result = parameter_id_check(data) or check_name_parameter(
            data) if isinstance(project, Project) else project
        if result:
            return result
        try:
            group = APIGroup.objects.get(id=data['id'],
                                         project=data['project_id'])
        except ObjectDoesNotExist:
            return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST, msg='分组不存在')

        serializer = APIGroupSerializer(data=data)
        if serializer.is_valid():
            serializer.update(instance=group, validated_data=serializer.data)
            record_dynamic(project=project,
                           _type='修改',
                           operation_object='接口分组',
                           user=request.user.pk,
                           data='修改接口分组"%s"' % group.name)
            return JsonResponse(code=code.CODE_SUCCESS)
        else:
            return JsonResponse(code=code.CODE_Failed)
示例#16
0
 def post(self, request):
     """
     启用项目
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     # 查找项目是否存在
     try:
         pro_data = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     try:
         obj = GlobalHost.objects.get(id=data["host_id"],
                                      project=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999992", msg="host不存在")
     obj.status = True
     record_dynamic(project=data["project_id"],
                    _type="禁用",
                    operationObject="域名",
                    user=request.user.pk,
                    data=obj.name)
     return JsonResponse(code="999999", msg="成功!")
 def post(self, request):
     """
     删除域名
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
     try:
         for j in data["ids"]:
             obj = GlobalHost.objects.filter(id=j)
             if obj:
                 obj.delete()
                 name = obj[0].name
                 record_dynamic(project=data["project_id"],
                                _type="删除",
                                operationObject="域名",
                                user=request.user.pk,
                                data=name)
         return JsonResponse(code_msg=GlobalStatusCode.success())
     except ObjectDoesNotExist:
         return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
示例#18
0
 def updatePublishResult(publish, id, result, trace, project_id, user_id):
     report_url = settings.REPORT_URL
     publish_test_url = settings.PUBLISH_TEST_URL
     statusMap = {"PASS": "******", "FAIL": "测试失败"}
     autotest_report = "%s/project=%s/trace=%s" % (report_url, project_id,
                                                   trace)
     params = {
         "id": id,
         "autotest_status": statusMap[result],
         "autotest_report": autotest_report
     }
     code, response_data, header_data = run_http(
         request_type="PUT",
         header={
             "Content-Type": "application/json; charset=UTF-8",
             'Connection': 'close'
         },
         url=publish_test_url,
         request_parameter_type="application/json",
         parameter=json.dumps(params).encode('utf-8'))
     record_dynamic(project=project_id,
                    _type="测试",
                    operationObject="发布项目",
                    user=user_id,
                    data="发布项目%s上线单%s%s,更新测试结果%s,测试报告链接:\n%s" %
                    (publish, id, statusMap[result], response_data["msg"]
                     if "msg" in response_data else "未知", autotest_report))
示例#19
0
 def post(self, request):
     """
     新增接口
     :param request:
     :return:
     """
     data=request.data
     result = self.parameter_check(data)
     if result:
         return result
     data["userUpdate"] = request.user.pk
     data["params"]="{}" if not "params" in data or not data["params"] else data["params"]
     api_name = ApiInfo.objects.filter(name=data["name"], project=data["project_id"])
     if len(api_name):
         return JsonResponse(code="999997", msg="存在相同名称!")
     else:
         result=ApiService.addApi(data)
         if result:
             record_dynamic(project=data["project_id"],
                                _type="新增", operationObject="接口", user=request.user.pk,
                                data="新增接口“%s”" % data["name"])
             api_record = ApiOperationHistory(api=ApiInfo.objects.get(id=result["id"]),
                                              user=User.objects.get(id=request.user.pk),
                                              description="新增接口“%s”" % data["name"])
             api_record.save()
             return JsonResponse(code="999999", msg="执行成功!", data={"api_id": result["id"]})
         else:
             return JsonResponse(code="999996", msg="执行失败!")
 def post(self, request):
     """
     删除域名
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     project = get_availability_project(data, request.user)
     result = parameter_ids_check(data) if isinstance(project,
                                                      Project) else project
     if result:
         return result
     try:
         for i in data['ids']:
             host = GlobalHost.objects.get(id=i)
             if host:
                 name = host.name
                 host.delete()
                 record_dynamic(project=data['project_id'],
                                _type='删除',
                                operation_object='域名',
                                user=request.user.pk,
                                data=host.name)
         return JsonResponse(code=code.CODE_SUCCESS)
     except ObjectDoesNotExist:
         return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST, msg='项目不存在!')
示例#21
0
 def post(self, request):
     """
     修改接口分组名称
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         pro_data = Project.objects.get(id=data["project_id"])
         if not request.user.is_superuser and pro_data.user.is_superuser:
             return JsonResponse(code="999983", msg="无操作权限!")
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     try:
         obj = ApiGroupLevelFirst.objects.get(id=data["id"], project=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999991", msg="分组不存在!")
     serializer = ApiGroupLevelFirstDeserializer(data=data)
     if serializer.is_valid():
         serializer.update(instance=obj, validated_data=data)
     else:
         return JsonResponse(code="999998", msg="失败!")
     record_dynamic(project=serializer.data.get("id"),
                    _type="修改", operationObject="接口分组", user=request.user.pk,
                    data="修改接口分组“%s”" % data["name"])
     return JsonResponse(code="999999", msg="成功!")
 def post(self, request):
     """
     更新项目host
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     project = get_availability_project(data, request.user)
     result = parameter_id_check(data) or all_parameter_check(
         data) if isinstance(project, Project) else project
     if result:
         return result
     try:
         host = GlobalHost.objects.get(id=data['host_id'])
     except ObjectDoesNotExist:
         return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST,
                             msg='未找到指定host')
     same_name_hosts = GlobalHost.objects.filter(name=data['name'],
                                                 project=data['project_id'])
     if len(same_name_hosts):
         return JsonResponse(code=code.CODE_EXIST_SAME_NAME,
                             msg='host名称已占用')
     serialzier = HostSerializer(data=data)
     with transaction.atomic():
         if serialzier.is_valid():
             serialzier.update(instance=host, validated_data=data)
             record_dynamic(project=data['project_id'],
                            _type='修改',
                            operation_object='域名',
                            user=request.user.pk,
                            data=host.name)
             return JsonResponse(code=code.CODE_SUCCESS)
         return JsonResponse(code=code.CODE_Failed)
示例#23
0
 def post(self, request):
     """
     新增接口
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         pro_data = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     try:
         obi = ApiInfo.objects.get(id=data["id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999990", msg="接口不存在!")
     obi.mockStatus = not obi.mockStatus
     obi.save()
     try:
         if obi.mockStatus:
             record_dynamic(project=data["project_id"],
                            _type="mock", operationObject="接口", user=request.user.pk,
                            data="关闭“%s”Mock" % obi.name)
         else:
             record_dynamic(project=data["project_id"],
                            _type="mock", operationObject="接口", user=request.user.pk,
                            data="启动“%s”Mock" % obi.name)
         return JsonResponse(code="999999", msg="成功!")
     except:
         return JsonResponse(code="999998", msg="失败!")
 def post(self, request):
     """
     启用host
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     project = get_availability_project(data, request.user)
     result = parameter_id_check(data) if isinstance(project,
                                                     Project) else project
     if result:
         return result
     try:
         host = GlobalHost.objects.get(id=data['host_id'],
                                       project=data['project_id'])
     except ObjectDoesNotExist:
         return JsonResponse(code=code.CODE_OBJECT_NOT_EXIST,
                             msg='未找到指定host')
     host.status = not host.status
     host.save()
     _type = '启用' if host.status else '禁用'
     record_dynamic(project=data['project_id'],
                    _type=_type,
                    operation_object='域名',
                    user=request.user.pk,
                    data=host.name)
     return JsonResponse(code=code.CODE_SUCCESS)
示例#25
0
 def post(self, request):
     """
     修改接口所属分组
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     try:
         pro_data = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     id_list = Q()
     for i in data["ids"]:
         id_list = id_list | Q(id=i)
     api_list = ApiInfo.objects.filter(id_list, project=data["project_id"])
     with transaction.atomic():
         api_list.update(apiGroupLevelFirst=ApiGroupLevelFirst.objects.get(id=data["apiGroupLevelFirst_id"]))
         name_list = []
         for j in api_list:
             name_list.append(str(j.name))
         record_dynamic(project=data["project_id"],
                        _type="修改", operationObject="接口", user=request.user.pk, data="修改接口分组,列表“%s”" % name_list)
         return JsonResponse(code="999999", msg="成功!")
 def post(self, request):
     """
     添加host
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     project = get_availability_project(data, request.user)
     result = all_parameter_check(data) if isinstance(project,
                                                      Project) else project
     if result:
         return result
     host = GlobalHost.objects.filter(name=data['name'],
                                      project=data['project_id'])
     if host:
         return JsonResponse(code=code.CODE_EXIST_SAME_NAME, msg='存在同名host')
     serializer = HostSerializer(data=data)
     with transaction.atomic():
         if serializer.is_valid():
             serializer.save(project=project)
             record_dynamic(project=data['project_id'],
                            _type='添加host',
                            operation_object='域名',
                            user=request.user.pk,
                            data=data['name'])
             return JsonResponse(
                 data={"host_id": serializer.data.get("id")},
                 code=code.CODE_SUCCESS)
         return JsonResponse(code=code.CODE_Failed)
示例#27
0
 def post(self,request):
     """
     添加测试用例
     :param request:
     :return:
     """
     data=JSONParser().parse(request)
     project=get_availability_project(data,request.user)
     result=all_parameter_check(data) if isinstance(project,Project) else project
     if result:
         return result
     with transaction.atomic():
         try:
             serializer = TestCaseDeserializer(data=data)
             if serializer.is_valid():
                 try:
                     group = TestCaseGroup.objects.get(id=data['test_case_group_id'], project=project.id)
                     serializer.save(project=project, test_case_group=group, user=User.objects.get(id=request.user.pk))
                 except KeyError:
                     serializer.save(project=project,user=User.objects.get(id=request.user.pk))
                 record_dynamic(project=project, _type='添加', operation_object='测试用例', user=request.user.pk,
                        data='新增测试用例 %s' % data['case_name'])
                 return JsonResponse(data={'case_id':serializer.data.get('id')},code=code.CODE_SUCCESS)
             return JsonResponse(code=code.CODE_Failed)
         except Exception:
             return JsonResponse(code=code.CODE_Failed)
示例#28
0
 def post(self, request):
     """
     删除用例的api接口
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     project = get_availability_project(data, request.user)
     test_case = get_test_case(data)
     if not isinstance(project, Project):
         return project
     if not isinstance(test_case, AutomationTestCase):
         return test_case
     for api_id in data['ids']:
         case_api = AutomationCaseApi.objects.filter(
             id=api_id, automation_test_case=test_case.id)
         if len(case_api) != 0:
             name = case_api[0].name
             case_api.delete()
             record_dynamic(project=project.id,
                            _type="删除",
                            operation_object="用例接口",
                            user=request.user.pk,
                            data="删除用例\"%s\"的接口\"%s\"" %
                            (test_case.case_name, name))
     return JsonResponse(code=code.CODE_SUCCESS)
 def post(self, request):
     """
     修改项目
     :param request:
     :return:
     """
     data = JSONParser().parse(request)
     result = self.parameter_check(data)
     if result:
         return result
     # 查找项目是否存在
     try:
         obj = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     # 查找是否相同名称的项目
     pro_name = Project.objects.filter(name=data["name"]).exclude(
         id=data["project_id"])
     if len(pro_name):
         return JsonResponse(code="999997", msg="存在相同名称")
     else:
         serializer = ProjectDeserializer(data=data)
         with transaction.atomic():
             if serializer.is_valid():
                 # 修改项目
                 serializer.update(instance=obj, validated_data=data)
                 # 记录动态
                 record_dynamic(project=data["project_id"],
                                _type="修改",
                                operationObject="项目",
                                user=request.user.pk,
                                data=data["name"])
                 return JsonResponse(code="999999", msg="成功")
             else:
                 return JsonResponse(code="999998", msg="失败")
示例#30
0
 def post(self, request):
     """
     启用项目配置
     :param request:
     :return:
     """
     data = request.data
     # 查找项目是否存在
     try:
         pro_data = Project.objects.get(id=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999995", msg="项目不存在!")
     pro_data = ProjectSerializer(pro_data)
     if not pro_data.data["status"]:
         return JsonResponse(code="999985", msg="该项目已禁用")
     try:
         obj = ProjectConfig.objects.get(id=data["config_id"],
                                         project=data["project_id"])
     except ObjectDoesNotExist:
         return JsonResponse(code="999992", msg="配置不存在")
     obj.status = True
     obj.save()
     record_dynamic(project=data["project_id"],
                    _type="启用",
                    operationObject="配置",
                    user=request.user.pk,
                    data=obj.name)
     return JsonResponse(code="999999", msg="成功!")