Esempio n. 1
0
def module_edit_b(request):

    try:
        rep = json.loads(request.body)
        m2_id = rep['id']
        m2_name = rep['m2']
    except Exception as e:
        print(e)
        return JsonResponse({"status":40001,"msg":"缺少必填参数"})
    else:
        if len(m2_name) > 20:
            return JsonResponse({"status":20004,"msg":"名称长度的合理范围为2到20位"})

    try:
        m2_obj = ModuleB.objects.get(id=m2_id)
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"该条记录不存在"})

    n = ModuleB.objects.filter(Q(id=m2_id) & Q(m2=m2_name)).count()
    if n > 0:
        return JsonResponse({"status":20004,"msg":"此名称已存在,请勿重复添加"})

    try:
        # 保存module
        m2_obj.m2=m2_name
        m2_obj.isChange = 1
        m2_obj.changer_id = get_user_object(request)
        m2_obj.change_time = curremt_time
        m2_obj.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status":20004,"msg":"修改失败"})
    else:
        return JsonResponse({"status":20000,"msg":"修改成功"})
Esempio n. 2
0
def add_notes(request):
    try:
        req = json.loads(request.body)
        bug_id = req["bug_id"]
        remark = req["remark"]
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"缺陷ID和备注不能为空"})
    else:
        if len(remark) == 0 or len(remark) > 2000:
            return JsonResponse({"status":40001,"msg":"备注的有效长度为1-2000"})

    try:
        bug_object = Bug.objects.get(bug_id=bug_id)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"bug_id无效"})

    try:
        msg = "添加了备注。"
        notes = BugHistory(
            bug_id = bug_object,
            remark = remark,
            desc = msg,
            user_id = get_user_object(request)
            )
        notes.save()
    except Exception as e:
        return JsonResponse({"status":20004,"msg":"提交失败"})
    else:
        return JsonResponse({"status":20000,"msg":"提交成功"})
Esempio n. 3
0
def module_add_b(request):

    try:
        rep = json.loads(request.body)
        module_a_id = rep['module_a_id']
        module_b_name = rep['module_b_name']
    except Exception as e:
        print(e)
        return JsonResponse({"status":40001,"msg":"module是必填项哦"})
    else:
        if len(module_b_name) > 20:
            return JsonResponse({"status":20004,"msg":"名称长度的合理范围为2到20位"})

    n = ModuleB.objects.filter(Q(m1_id=module_a_id) & Q(m2=module_b_name)).count()
    if n > 0:
        return JsonResponse({"status":20004,"msg":"此名称已存在,请勿重复添加"})

    try:
        # 保存module
        m = ModuleB(
            m1_id=ModuleA.objects.get(id=module_a_id),
            m2=module_b_name,
            creator_id=get_user_object(request)
            )
        m.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status":20004,"msg":"保存失败"})
    else:
        return JsonResponse({"status":20000,"msg":"保存成功"})
Esempio n. 4
0
def del_testcase(request):
    try:
        rep = request.GET
        testcase_id = rep["case_id"]
    except Exception as e:
        return JsonResponse({"status": 40004, "msg": "缺陷ID不能为空"})

    is_check_testcase = TestCase.objects.filter(
        case_id=testcase_id).values_list("isDelete")
    if len(is_check_testcase) == 0:
        return JsonResponse({"status": 20004, "msg": "该条记录不存在"})
    try:
        if is_check_testcase[0][0] == 1:
            return JsonResponse({"status": 20001, "msg": "该条记录已被他人删除"})
    except Exception as e:
        return JsonResponse({"status": 40004, "msg": "异常错误,请联系管理员"})

    try:
        tc = TestCase.objects.get(case_id=testcase_id)
        tc.deleter_id = get_user_object(request)
        tc.delete_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        tc.isDelete = 1
        tc.save()
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "删除失败"})
    else:
        return JsonResponse({"status": 20000, "msg": "删除成功"})
Esempio n. 5
0
def module_add_a(request):

    try:
        rep = json.loads(request.body)
        product_code = rep['product_code']
        module_name = rep['ModuleA']
    except Exception as e:
        print(e)
        return JsonResponse({"status":40001,"msg":"module是必填项哦"})
    else:
        if len(module_name) > 20:
            return JsonResponse({"status":20004,"msg":"名称长度的合理范围为2到20位"})

    n = ModuleA.objects.filter(Q(m1=module_name) & Q(product_code=product_code)).count()
    if n > 0:
        return JsonResponse({"status":20004,"msg":"名称已存在,请勿重复添加"})

    try:
        # 保存module
        pcode = Product.objects.get(product_code=product_code)
        m = ModuleA(
            product_code=pcode,
            m1=module_name,
            creator_id=get_user_object(request)
            )
        m.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status":20004,"msg":"保存失败"})
    else:
        return JsonResponse({"status":20000,"msg":"保存成功"})
Esempio n. 6
0
def edit(request):
    try:
        req = json.loads(request.body)
        testcase_id = req["case_id"]
        case_obj = TestCase.objects.get(case_id=testcase_id)
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "用例ID不能为空,并且需有效"})

    if "DataInput" in req:
        case_obj.DataInput = req["DataInput"]
    if "precondition" in req:
        case_obj.precondition = req["precondition"]
    if "remark" in req:
        case_obj.remark = req["remark"]
    if "priority" in req:
        case_obj.priority = req["priority"]
    if "steps" in req:
        case_obj.steps = req["steps"]
    if "title" in req:
        case_obj.title = req["title"]
    if "expected_result" in req:
        case_obj.expected_result = req["expected_result"]
    if "category" in req:
        case_obj.category = req["category"]

    if "module_id" in req:
        if len(req["module_id"]) == 1:
            try:
                m1_id = ModuleA.objects.get(id=req["module_id"][0])
            except Exception as e:
                return JsonResponse({"status": 40004, "msg": u"产品模块无效."})
            else:
                case_obj.m1_id = m1_id
        if len(req["module_id"]) == 2:
            try:
                m2_id = ModuleB.objects.get(id=req["module_id"][1])
            except Exception as e:
                return JsonResponse({"status": 40004, "msg": u"产品模块无效."})
            else:
                case_obj.m2_id = m2_id

    try:
        change_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        case_obj.change_time = change_time
        case_obj.changer_id = get_user_object(request)
        case_obj.save()
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "修改失败"})
    else:
        # 保存附件
        try:
            if "annex" in req:
                annex = req["annex"]
                for f in annex:
                    aex = TestCaseFiles(case_id=case_obj, file_path=f)
                    aex.save()
        except Exception as e:
            return JsonResponse({"status": 20004, "msg": "附件错误"})
        else:
            return JsonResponse({"status": 20000, "msg": "修改成功"})
Esempio n. 7
0
def create_product(request):
    rep = json.loads(request.body)

    try:
        product_code = rep['product_code']
        product_name = rep['product_name']
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"产品名称和编号是必填项哦"})

    if len(product_code) > 20 | len(product_code) < 2:
        return JsonResponse({"status":20004,"msg":"名称长度的合理范围为1到20位"})
    if len(product_name) > 20 | len(product_name) < 2:
        return JsonResponse({"status":20004,"msg":"编号长度的合理范围为1到20位"})

    is_check = Product.objects.filter(Q(product_code=product_code) | Q(product_name=product_name)).count()
    if is_check > 0:
        return JsonResponse({"status":"20004","msg":"此项目名称已存在哦"})
    try:
        p = Product(
            product_code = product_code,
            product_name = product_name,
            principal = get_user_object(request),
            creator_id = get_user_object(request)
            )
        p.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status":20004,"msg":"保存失败"})
    else:
        try:
            pcode_object = Product.objects.get(product_code=product_code)
            member = ProductMembers(
                member_id = get_user_object(request),
                product_code = pcode_object,
                status = 0
                )
            member.save()
        except Exception as e:
            print(e)
            pass
        return JsonResponse({"status":20000,"msg":"产品增加成功!快去增加产品版本、成员信息吧"})
Esempio n. 8
0
def resolve(request):
    try:
        req = json.loads(request.body)
        bug_id = req["bug_id"]
        solution = req["solution"]
        assignedTo = req["assignedTo"]
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"缺少必要的参数"})

    try:
        assignedTo_obj = User.objects.get(user_id=assignedTo)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"指派人不存在"})

    if "remark" in req:
        remark = req["remark"]
        if len(remark) > 1000:
            return JsonResponse({"status":40004,"msg":"备注的有效长度为1000"})
    else:
        remark = ""

    try:
        bug_object = Bug.objects.get(bug_id=bug_id)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"bug_id无效"})

    try:
        is_solution = BugSolution.objects.get(key=solution)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"solution无效"})

    try:
        user_obj = get_user_object(request)
        bug_object.solution = is_solution
        bug_object.assignedTo_id = assignedTo_obj
        bug_object.fixed_id = user_obj
        bug_object.fixed_time = curremt_time
        bug_object.status = BugStatus.objects.get(key="Fixed")
        bug_object.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status":20004,"msg":"提交失败"})
    else:
        Solution_content = BugSolution.objects.filter(key=solution).values_list("name",flat=True)[0]
        msg = "解决了缺陷。解决方案为:{0}".format(Solution_content)
        log = BugHistory(
            user_id = user_obj,
            bug_id = bug_object,
            desc = msg,
            remark = remark
            )
        log.save()
        return JsonResponse({"status":20000,"msg":"提交成功"})
Esempio n. 9
0
def hangup(request):
    try:
        req = json.loads(request.body)
        bug_id = req["bug_id"]
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"缺陷ID不能为空"})

    try:
        bug_object = Bug.objects.get(bug_id=bug_id)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"bug_id无效"})

    try:
        bug_object.status = BugStatus.objects.get(key="Hang-up")
        bug_object.hangUp_id = get_user_object(request)
        bug_object.hangUp_time = curremt_time
        bug_object.save()
    except Exception as e:
        return JsonResponse({"status":20004,"msg":"延期操作失败"})
    else:
        bug_log_record(request,get_user_object(request),bug_object,"Hang-up")
        return JsonResponse({"status":20000,"msg":"延期操作成功"})
Esempio n. 10
0
def close(request):
    try:
        req = json.loads(request.body)
        bug_id = req["bug_id"]
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"缺少必要的请求参数"})

    try:
        bug_object = Bug.objects.get(bug_id=bug_id)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"bug_id无效"})

    try:
        bug_object.status = BugStatus.objects.get(key="Closed")
        bug_object.closed_id = get_user_object(request)
        bug_object.closed_time = curremt_time
        bug_object.save()
    except Exception as e:
        return JsonResponse({"status":20004,"msg":"缺陷关闭失败"})
    else:
        bug_log_record(request,get_user_object(request),bug_object,"close")
        return JsonResponse({"status":20000,"msg":"缺陷关闭成功"})
Esempio n. 11
0
def testsutie_cell_add(request):
    try:
        req = json.loads(request.body)
        suite_id = req["suite_id"]
    except Exception as e:
        return JsonResponse({"status": 40001, "msg": "suite_id不能为空"})

    if "case_data" in req and "m1" not in req:
        case_data = req["case_data"]
    if "case_data" in req and "m1" in req:
        return JsonResponse({"status": 40001, "msg": "请检查请求数据"})

    if "m1" in req:
        m1 = req["m1"]
        if "m2" in req:
            m2 = req["m2"]
            case_data = TestCase.objects.filter(
                Q(m2_id=m2)).values_list("case_id")[:]
        else:
            case_data = TestCase.objects.filter(
                Q(m1_id=m1)).values_list("case_id")[:]
        if len(case_data) == 0:
            return JsonResponse({"status": 20004, "msg": "该模块下没有测试用例数据"})
        case_data = [i[0] for i in case_data]

    try:
        creator_obj = get_user_object(request)
        suite_obj = TestSuite.objects.get(suite_id=suite_id)
        try:
            data = [
                TestSuiteCell(case_id=TestCase.objects.get(case_id=i),
                              suite_id=suite_obj,
                              creator_id=creator_obj) for i in case_data
            ]
            print(data)
        except Exception as e:
            print(e)
            return JsonResponse({"status": 20004, "msg": "用例ID无效"})
        else:
            print(data)
            TestSuiteCell.objects.bulk_create(data)
    except Exception as e:
        print(e)
        return JsonResponse({"status": 20004, "msg": "保存失败,请联系管理员"})
    else:
        return JsonResponse({"status": 20000, "msg": "保存成功"})
Esempio n. 12
0
def assign(request):
    try:
        req = json.loads(request.body)
        bug_id = req["bug_id"]
        assignedTo = req["assignedTo"]
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"缺少必要的参数"})

    try:
        assignedTo_obj = User.objects.get(user_id=assignedTo)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"分配的用户不存在"})

    try:
        bug_obj = Bug.objects.get(bug_id=bug_id)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"bug_id无效"})

    if "remark" in req:
        remark = req["remark"]
        if len(remark) > 1000:
            return JsonResponse({"status":40004,"msg":"备注的有效长度为1000"})
    else:
        remark = ""

    try:
        bug_obj.assignedTo_id = assignedTo_obj
        bug_obj.assignedTo_time = curremt_time
        bug_obj.status = BugStatus.objects.get(key="Open")
        bug_obj.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status":20004,"msg":"分配失败"})
    else:
        assignedTo_user = User.objects.filter(user_id=assignedTo).values_list("realname",flat=True)
        msg = "指派给:{0}".format(assignedTo_user[0])
        log = BugHistory(
            user_id = get_user_object(request),
            bug_id = bug_obj,
            desc = msg,
            remark = remark
            )
        log.save()
        return JsonResponse({"status":20000,"msg":"分配成功"})
Esempio n. 13
0
def reopen(request):
    try:
        req = json.loads(request.body)
        bug_id = req["bug_id"]
        assignedTo = req["assignedTo"]
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"缺少必要的请求参数"})

    remark = ""
    if "remark" in req:
        remark = req["remark"]
        if len(remark) > 1000:
            return JsonResponse({"status":40004,"msg":"备注的有效长度为1000"})

    try:
        bug_object = Bug.objects.get(bug_id=bug_id)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"bug_id无效"})

    try:
        assignedTo_obj = User.objects.get(user_id=assignedTo)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"分配的用户不存在"})

    try:
        bug_object.status = BugStatus.objects.get(key="Reopen")
        bug_object.assignedTo_id = assignedTo_obj
        bug_object.assignedTo_time = curremt_time
        bug_object.solution = None
        bug_object.save()
    except Exception as e:
        return JsonResponse({"status":20004,"msg":"重新打开失败"})
    else:
        assignedTo_user = User.objects.filter(user_id=assignedTo).values_list("realname",flat=True)[0]
        msg = "重新打开缺陷。并分配给:{0}".format(assignedTo_user)
        log = BugHistory(
            user_id = get_user_object(request),
            bug_id = bug_object,
            desc = msg,
            remark = remark
            )
        log.save()
        return JsonResponse({"status":20000,"msg":"缺陷重新打开成功"})
Esempio n. 14
0
def fall(request):
    try:
        case_id = request.GET["case_id"]
    except Exception as e:
        return JsonResponse({"status": 40004, "msg": "case_id不能为空"})

    try:
        case_id = TestCase.objects.get(case_id=case_id)
    except Exception as e:
        return JsonResponse({"status": 40004, "msg": "case_id无效"})

    try:
        case_id.status = 1
        case_id.faller_id = get_user_object(request)
        case_id.fall_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        case_id.save()
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "操作失败"})
    else:
        return JsonResponse({"status": 20000, "msg": "操作成功"})
Esempio n. 15
0
def create(request):
    try:
        req = json.loads(request.body)
        product_code = req["product_code"]
        suite_name = req["suite_name"]
        p_obj = Product.objects.get(product_code=product_code)
    except Exception as e:
        return JsonResponse({"status": 40001, "msg": "缺少必要的请求参数"})

    if len(suite_name) > 30:
        return JsonResponse({"status": 20004, "msg": "名称的有效长度需小于30"})

    try:
        suite_obj = TestSuite(suite_name=suite_name,
                              product_code=p_obj,
                              creator_id=get_user_object(request))
        suite_obj.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status": 20004, "msg": "保存失败,请联系管理员"})
    else:
        return JsonResponse({"status": 20000, "msg": "创建成功"})
Esempio n. 16
0
def review(request):

    try:
        req = json.loads(request.body)
        case_id = req["case_id"]
        result = req["result"]
    except Exception as e:
        return JsonResponse({"status": 40001, "msg": "Result和case_id不能为空"})

    if result in [1, 2]:
        pass
    else:
        return JsonResponse({"status": 40001, "msg": "Result无效"})

    if "remark" in req:
        remark = req["remark"]
    else:
        remark = ""

    try:
        case_obj = TestCase.objects.get(case_id=case_id)
    except Exception as e:
        return JsonResponse({"status": 40001, "msg": "case_id无效"})

    try:
        case_obj.isReview = result
        case_obj.save()

        review_result = TestCaseReview(user_id=get_user_object(request),
                                       case_id=case_obj,
                                       result=result,
                                       remark=remark)
        review_result.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status": 20004, "msg": "操作失败"})
    else:
        return JsonResponse({"status": 20000, "msg": "操作成功"})
Esempio n. 17
0
def testsutie_cell_run(request):
    try:
        req = json.loads(request.body)
        cell_id = req["cell_id"]
        result = req["result"]
    except Exception as e:
        return JsonResponse({"status": 40001, "msg": "cell_id和result不能为空"})

    if result == 1 or result == -1:
        pass
    else:
        JsonResponse({"status": 40001, "msg": "result无效"})

    try:
        cell_obj = TestSuiteCell.objects.get(cell_id=cell_id)
        cell_obj.result = result
        cell_obj.runner_id = get_user_object(request)
        cell_obj.run_time = curremt_time
        cell_obj.save()
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "服务器开小差了"})
    else:
        return JsonResponse({"status": 20000, "msg": "用例运行结果保存成功"})
Esempio n. 18
0
def module_del_b(request):

    try:
        m2_id = request.GET['id']
    except Exception as e:
        print(e)
        return JsonResponse({"status":40001,"msg":"缺少必填参数"})

    try:
        m2_obj = ModuleB.objects.get(id=m2_id)
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"该条记录不存在"})
    try:
        # 保存module
        m2_obj.isDelete = 1
        m2_obj.deleter_id = get_user_object(request)
        m2_obj.delete_time = curremt_time
        m2_obj.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status":20004,"msg":"删除失败"})
    else:
        return JsonResponse({"status":20000,"msg":"删除成功"})
Esempio n. 19
0
def create_release(request):
    rep = json.loads(request.body)

    try:
        product_code = rep['product_code']
        release = rep['release']
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "产品名称和版本号是必填项哦"})

    # 检查产品是否存在
    try:
        pcode = Product.objects.get(product_code=product_code)
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "未找到此产品名称"})

    # 检测版本号是否存在
    try:
        v = Release.objects.filter(
            Q(product_code=product_code) & Q(version=release)).count()
        if v > 0:
            return JsonResponse({"status": 20004, "msg": "该版本号已存在"})
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "未找到此产品名称"})

    if len(release) > 20 | len(release) < 2:
        return JsonResponse({"status": 20004, "msg": "名称长度的合理范围为2到20位"})

    try:
        p = Release(product_code=pcode,
                    version=release,
                    creator_id=get_user_object(request))
        p.save()
    except Exception as e:
        return JsonResponse({"status": 20004, "msg": "保存失败"})
    else:
        return JsonResponse({"status": 20000, "msg": "保存成功"})
Esempio n. 20
0
def edit(request):
    try:
        req = json.loads(request.body)
        bug_id = req["bug_id"]
        bug_obj = Bug.objects.get(bug_id=bug_id)
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"缺少bug_id或bug_id无效"})

    if "assignedTo_id" in req:
        try:
            bug_obj.assignedTo_id = User.objects.get(user_id=req["assignedTo_id"])
            bug_obj.assignedTo_time = curremt_time
        except Exception as e:
            print(e)
            return JsonResponse({"status":40001,"msg":"指派人不存在"})
        else:
            status = Bug.objects.filter(bug_id=bug_id).values_list("status")[0]
            if status == 'New':
                bug_obj.status = BugStatus.objects.get(key="Open")

    # check product_code
    if "product_code" in req:
        try:
            bug_obj.product_code = Product.objects.get(product_code=req["product_code"])
        except Exception as e:
            print(e)
            return JsonResponse({"status":40004,"msg":"产品名称无效"})

    if "module_id" in req and req["module_id"]:
        try:
            m1_id = ModuleA.objects.get(id=req["module_id"][0])
            bug_obj.m1_id = m1_id
        except Exception as e:
            return JsonResponse({"status": 40004, "msg": u"产品模块无效."})
            
        if len(req["module_id"]) == 2:
            try:
                m2_id = req["module_id"][1]
                bug_obj.m2_id = ModuleB.objects.get(id=m2_id)
            except Exception as e:
                return JsonResponse({"status": 40004, "msg": u"产品模块无效."})

    # check version_object
    if "release" in req:
        if "product_code" not in req:
            return JsonResponse({"status":40001,"msg":"当您修改版本信息时,必须提交产品选项"})
        try:
            bug_obj.version_id = Release.objects.get(Q(product_code=req["product_code"]) & Q(version=req["release"]))
        except Exception as e:
            print(e)
            return JsonResponse({"status":40004,"msg":"版本号无效"})

    # check priority
    if "priority" in req:
        try:
            bug_obj.priority = BugPriority.objects.get(key=req["priority"])
        except Exception as e:
            return JsonResponse({"status":40004,"msg":"优先级值无效"})

    # check severity
    if "severity" in req:
        try:
            bug_obj.severity = BugSeverity.objects.get(key=req["severity"])
        except Exception as e:
            print(e)
            return JsonResponse({"status":40004,"msg":"严重程度值无效"})

    # check BugType
    if "bug_type" in req:
        try:
            bug_obj.bug_type = BugType.objects.get(key=req["bug_type"])
        except Exception as e:
            print(e)
            return JsonResponse({"status":40004,"msg":"缺陷类型无效"})

    if "title" in req:
        bug_obj.title = req["title"]
    if "steps" in req:
        bug_obj.steps = req["steps"]
    if "reality_result" in req:
        bug_obj.reality_result = req["reality_result"]
    if "expected_result" in req:
        bug_obj.expected_result = req["expected_result"]
    if "remark" in req:
        bug_obj.remark = req["remark"]

    try:
        bug_obj.save()
    except Exception as e:
        return JsonResponse({"status":20004,"msg":"缺陷修改失败"})
    else:
        # 记录日志
        try:
            bug_log_record(request,get_user_object(request),bug_obj,"edit")
        except Exception as e:
            print(e)
            pass
        # 保存附件
        try:
            if "annex" in req:
                annex = req["annex"]
                for f in annex:
                    aex = BugAnnex(
                        bug_id = bug_obj,
                        url = f
                        )
                    aex.save()
        except Exception as e:
            print(e)
            return JsonResponse({"status":20004,"msg":"bug附件错误"})
        else:
            return JsonResponse({"status":20000,"msg":"修改成功"})
Esempio n. 21
0
def add(request):
    req = json.loads(request.body)

    try:
        product_code = req["product_code"]
        category = req["category"]
        title = req["title"]
        ExpectedResult = req["ExpectedResult"]
        steps = req["steps"]
    except Exception as e:
        print(e)
        return JsonResponse({"status": 20004, "msg": "产品信息、不能为空哦"})

    if "module_id" in req and len(req["module_id"]):
        try:
            m1_id = ModuleA.objects.get(id=req["module_id"][0])
            m2_id = ModuleB.objects.get(id=req["module_id"][1])
        except Exception as e:
            return JsonResponse({"status": 40004, "msg": u"产品模块无效."})
    else:
        m1_id = None
        m2_id = None

    DataInput = ""
    precondition = ""
    remark = ""
    priority = ""
    if "DataInput" in req:
        DataInput = req["DataInput"]
    if "precondition" in req:
        precondition = req["precondition"]
    if "remark" in req:
        remark = req["remark"]
    if "priority" in req:
        priority = req["priority"]

    if len(title) > 50:
        return JsonResponse({"status": 20004, "msg": "标题字数应小于50."})
    if len(DataInput) > 500:
        return JsonResponse({"status": 20004, "msg": "输入字数应小于500."})
    if len(ExpectedResult) > 500:
        return JsonResponse({"status": 20004, "msg": "预期结果字数应小于500."})
    if len(steps) > 5000:
        return JsonResponse({"status": 20004, "msg": "操作步骤字数应小于5000."})
    if len(remark) > 1000:
        return JsonResponse({"status": 20004, "msg": "备注字数应小于1000."})
    if len(precondition) > 200 or len(DataInput) > 200 or len(remark) > 1000:
        return JsonResponse({
            "status": 20004,
            "msg": "超出字数限制。请检查前置条件、测试输入、备注项."
        })

    try:
        data = TestCase(
            product_code=Product.objects.get(product_code=product_code),
            title=title,
            category=category,
            DataInput=DataInput,
            steps=steps,
            expected_result=ExpectedResult,
            precondition=precondition,
            remark=remark,
            creator_id=get_user_object(request),
            priority=priority,
            m1_id=m1_id,
            m2_id=m2_id)
        data.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status": 20004, "msg": "用例保存失败"})
    else:
        case_id = TestCase.objects.get(case_id=data.case_id)
        # 保存附件
        try:
            if "annex" in req:
                if req["annex"]:
                    for f in req["annex"]:
                        file = TestCaseFiles(case_id=case_id, file_path=f)
                        file.save()
        except Exception as e:
            TestCase.objects.get(case_id=case_id).delete()
            return JsonResponse({"status": 20004, "msg": "附件错误"})
        else:
            return JsonResponse({"status": 20000, "msg": "用例保存成功"})
Esempio n. 22
0
    def process_view(self, request, view, args, kwargs):
        """
            1. check user identify
            2. check interface permission
            3. check product permission
        """
        # get token
        if request.path == "/api/user/login":
            return None
        else:
            token = ""
            cookie = ""
            if request.META.get("HTTP_AUTHORIZATION"):
                token = request.META["HTTP_AUTHORIZATION"].split(" ")[1]
            if request.META.get("HTTP_AUTHENTICATION"):
                token = request.META["HTTP_AUTHENTICATION"].split(" ")[1]
            if request.META.get("HTTP_COOKIE"):
                cookie = request.META["HTTP_COOKIE"].split("=")[1]

            token = cookie
            if token:
                pass
            else:
                return JsonResponse({
                    "status": 14402,
                    "msg": "token或cookie身份令牌无效,请求中止"
                })

        # check user token
        try:
            user_data = Authentication.objects.\
                filter(token=token).\
                annotate(Group=F("uid__group__group"),realname=F("uid__realname"),user_status=F("uid__user_status")).\
                values("token","uid","Group","realname","user_status")[:][0]
        except Exception as e:
            print(e)
            return JsonResponse({"status": 14402, "msg": "身份令牌无效,请求中止"})
        else:
            if user_data["user_status"] == 2:
                return JsonResponse({"status": 14402, "msg": "已被封禁,请联系管理员."})

        # record log
        try:
            today = time.strftime("%Y-%m-%d", time.localtime())
            if "product_release" in self.path:
                flag = "登录"
                today_is_login = UserLog.objects.filter(Q(create_time__gte=today) & Q(flag="登录") & Q(ip=self.ip)).\
                    values("id","user_id")
                if len(today_is_login) == 0:
                    record_log = UserLog(user_id=get_user_object(request),
                                         ip=self.ip,
                                         flag=flag)
                    record_log.save()
                else:
                    log_id = list(today_is_login)[0]['id']
                    record_log = UserLog.objects.get(id=log_id)
                    record_log.update_time = time.strftime(
                        "%Y-%m-%d %H:%M:%S", time.localtime())
                    record_log.save()
        except Exception as e:
            print(e)
            pass

        # 检查访问权限
        if user_data["Group"] == "admin":
            return None
        elif self.path == "/api/user/pages":
            return None
        else:
            # 检查接口权限
            is_allow = ApiPermissions.objects.\
                filter(Q(group=user_data["Group"]) & Q(api_id__url=self.path) & Q(is_allow=1)).count()
            if is_allow == 1:
                return None
            else:
                return JsonResponse({
                    "status": 14444,
                    "msg": "您没有此接口的访问权限,请联系管理员"
                })

            # 项目权限检查
            if self.product_code:
                try:
                    user_id = user_data["uid"]
                    ProductMembers.objects.get(
                        Q(product_code=self.product_code)
                        & Q(member_id=user_id) & Q(status=0))
                except Exception as e:
                    return JsonResponse({
                        "status": 14444,
                        "msg": "您不在此项目中,请联系管理员"
                    })
            else:
                return JsonResponse({"status": 14444, "msg": "错误的产品名称"})
Esempio n. 23
0
def create(request):

    try:
        req = json.loads(request.body)
        product_code = req["product_code"]
        release = req["release"]
        title = req["title"]
        steps = req["steps"]
        reality_result = req["reality_result"]
        expected_result = req["expected_result"]
        priority = req["priority"]
        severity = req["severity"]
        assignedTo = req["assignedTo_id"]
        annex = req["annex"]
        bug_type = req["bug_type"]
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"缺少必要的参数"})

    m1_id,m2_id = None,None
    if "module_id" in req and req["module_id"]:
        try:
            m1_id = ModuleA.objects.get(id=req["module_id"][0])
        except Exception as e:
            return JsonResponse({"status": 40004, "msg": u"产品模块无效."})

        if len(req["module_id"]) == 2:
            try:
                m2_id = req["module_id"][1]
                m2_id = ModuleB.objects.get(id=m2_id)
            except Exception as e:
                return JsonResponse({"status": 40004, "msg": u"产品模块无效."})
        
    try:
        if "case_id" in req and req["case_id"]:
            case_id = req["case_id"]
            case_obj = TestCase.objects.get(case_id=case_id)
        else:
            case_obj = None
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"case_id无效"})
        
    try:
        if "cell_id" in req and req["cell_id"]:
            cell_id = req["cell_id"]
            cell_obj = TestSuiteCell.objects.get(cell_id=cell_id)
        else:
            cell_obj = None
    except Exception as e:
        return JsonResponse({"status":40001,"msg":"cell_id无效"})

    if assignedTo:
        assignedTo = req["assignedTo_id"]
        try:
            assignedTo_object = User.objects.get(user_id=assignedTo)
        except Exception as e:
            return JsonResponse({"status":40004,"msg":"指派人不存在"})
        assignedToDate = curremt_time
        status = BugStatus.objects.get(key="Open")
    else:
        assignedTo_object = None
        assignedToDate = None
        status = BugStatus.objects.get(key="New")
    
    # product_code
    try:
        product_object = Product.objects.get(product_code=product_code)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"产品名称无效"})

    # version_object
    try:
        version_object = Release.objects.get(Q(product_code=product_code) & Q(version=release))
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"版本号无效"})

    # priority
    try:
        priority_object = BugPriority.objects.get(key=priority)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"优先级值无效"})

    # severity
    try:
        severity_object = BugSeverity.objects.get(key=severity)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"严重程度值无效"})

    # BugType
    try:
        bug_type_object = BugType.objects.get(key=bug_type)
    except Exception as e:
        return JsonResponse({"status":40004,"msg":"缺陷类型无效"})

    # remark
    if "remark" in req:
        remark = req["remark"]
    else:
        remark = ""

    try:
        bug = Bug(
            product_code = product_object,
            version_id = version_object,
            priority = priority_object,
            severity = severity_object,
            bug_type = bug_type_object,
            creator_id = get_user_object(request),
            title = title,
            steps = steps,
            reality_result = reality_result,
            expected_result = expected_result,
            assignedTo_id = assignedTo_object,
            assignedTo_time = assignedToDate,
            remark = remark,
            status = status,
            case_id = case_obj,
            cell_id = cell_obj,
            m1_id = m1_id,
            m2_id = m2_id
        )
        bug.save()
    except Exception as e:
        print(e)
        return JsonResponse({"status":20004,"msg":"提交bug失败"})
    else:
        bug_id = Bug.objects.get(bug_id=bug.bug_id)
        # 记录日志
        try:
            bug_log_record(request,get_user_object(request),bug_id,"create")
        except Exception as e:
            pass

        # 保存附件
        try:
            if annex:
                for f in annex:
                    aex = BugAnnex(
                        bug_id = bug_id,
                        url = f
                        )
                    aex.save()
        except Exception as e:
            Bug.objects.get(bug_id=bug_id).delete()
            return JsonResponse({"status":20004,"msg":"bug附件错误"})
        else:
            return JsonResponse({"status":20000,"msg":"缺陷保存成功"})