示例#1
0
def case_query_handler():
    """
    @api {get} /v1/case/ 查询 用例
    @apiName GetCase
    @apiGroup 项目
    @apiDescription 查询用例,可根据需求id查询
    @apiParam {int} [page_size] 分页-单页数目
    @apiParam {int} [page_index] 分页-页数
    @apiParam {int} [requirement_id] 需求id
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code": 0,
        "data": [
            {
                "cnumber": "TC3891",
                "creation_time": "2019-07-26 16:14:07",
                "ctype": "1",
                "id": 3891,
                "is_auto": 1,
                "modified_time": "2019-07-26 16:14:07",
                "module": "看板管理",
                "moduleid": 342,
                "precondition": "1",
                "priority": 0,
                "requirement":[
                    {
                        "requirement_id": 1,
                        "requirement_title": "123123",
                    }
                ],
                "status": 0,
                "step_result": "{\"step_result\":[{\"step\":\"1\",\"expect\":\"1\"}]}",
                "title": "1",
                "userid": 104,
                "username": "******"
            }
        ],
        "message": "ok",
        "page_index": 1,
        "page_size": 2,
        "total": 2915
    }
    """
    page_size, page_index = parse_list_args2()
    requirement_id = request.args.get('requirement_id')
    if requirement_id:
        data, count = CaseBusiness.query_by_requirement_id(
            requirement_id, page_size, page_index)
    else:
        data, count = CaseBusiness.paginate_data(page_size, page_index)
    return json_list_render2(0, data, page_size, page_index, count)
示例#2
0
def case_import():
    """
    @api {post} /v1/case/import 导入 用例
    @apiName ImportCases
    @apiGroup 项目
    @apiDescription 导入用例
    @apiParam {string} url_path oss url
    @apiParam {int} creator 创建人
    @apiParam {int} project_id 项目id
    @apiParam {int} module_id 模块id
    @apiParamExample {json} Request-Example:
    {
        "url_path": "http://tcloud-static.oss-cn-beijing.aliyuncs.com/v1/case_export/96/1564575657.xls",
        "project_id":4,
        "creator":96,
        "module_id":342
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code":0,
        "data":"",
        "message":"ok"
    }
    """
    url_path, creator, project_id, module_id = parse_json_form('fileimport')
    code, message = CaseBusiness.case_import(url_path, creator, project_id,
                                             module_id)
    return json_detail_render(code, [], message)
示例#3
0
def case_export():
    """
    @api {post} /v1/case/export 导出 所有用例
    @apiName ExportCases
    @apiGroup 项目
    @apiDescription 导出所有用例
    @apiParam {int} project_id 项目id
    @apiParam {list} module_data 模块信息
    @apiParam {int} user_id 用户id
    @apiParamExample {json} Request-Example:
    {
        "project_id":4,
        "user_id":96,
        "module_data":[{"module_id":342,"case_id":[]}]
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code":0,
        "data":{"url":"http://tcloud-static.oss-cn-beijing.aliyuncs.com/v1/case_export/96/1564575657.xls"},
        "message":""
    }
    """
    code, data, message = CaseBusiness.case_export()
    return json_detail_render(code=code, data=data, message=message)
示例#4
0
def case_single_delete_handler(case_id):
    """
    @api {delete} /v1/case/{case_id} 删除 用例
    @apiName DeleteCase
    @apiGroup 项目
    @apiDescription 删除用例
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code":0,
        "data":[],
        "message":"ok"
    }
    """
    if CaseBusiness.project_permission(id=case_id):
        return json_detail_render(109)
    ret = CaseBusiness.delete(case_id)
    return json_detail_render(ret)
示例#5
0
def case_single_modify_handler(case_id):
    """
    @api {post} /v1/case/{case_id} 修改 用例
    @apiName ModifyCase
    @apiGroup 项目
    @apiDescription 修改用例
    @apiParam {int} module_id 模块id
    @apiParam {string} ctype 用例类型
    @apiParam {string} title 标题
    @apiParam {string} precondition 前置条件
    @apiParam {string} step_result 用例步骤及预期结果 json->string格式存入
    @apiParam {int} is_auto 是否可转自动化
    @apiParam {int} priority 优先级 0:紧急 1:高 2:中 3:低
    @apiParam {list} requirement_ids 需求 ID 列表
    @apiParamExample {json} Request-Example:
    {
        "module_id": 1,
        "ctype": "功能回归",
        "title": "test",
        "precondition": "",
        "step_result": "",
        "is_auto": 1,
        "priority": 1,
        "requirement_ids": [1,2,3]
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code":0,
        "data":[],
        "message":"ok"
    }
    """
    if CaseBusiness.project_permission(id=case_id):
        return json_detail_render(109)
    module_id, ctype, title, precondition, step_result, is_auto, priority, requirement_ids = parse_json_form(
        'caseupdate')

    ret = CaseBusiness.update(case_id, module_id, ctype, title, precondition,
                              step_result, is_auto, priority, requirement_ids)

    return json_detail_render(ret)
示例#6
0
def case_create_handler():
    """
    @api {post} /v1/case/ 新增 用例
    @apiName CreateCase
    @apiGroup 项目
    @apiDescription 新增用例
    @apiParam {int} module_id 模块id
    @apiParam {string} ctype 用例类型
    @apiParam {string} title 标题
    @apiParam {string} precondition 前置条件
    @apiParam {string} step_result 用例步骤及预期结果 json->string格式存入
    @apiParam {int} creator 创建人
    @apiParam {int} priority 优先级 0:紧急 1:高 2:中 3:低
    @apiParam {list} requirement_ids 需求 ID 列表
    @apiParamExample {json} Request-Example:
    {
        "module_id": 1,
        "ctype": "功能回归",
        "title": "test",
        "precondition": "",
        "step_result": "",
        "creator": 1,
        "priority": 1,
        "requirement_ids": [1,2,3]
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code":0,
        "data":[],
        "message":"ok"
    }
    """
    module_id, ctype, title, precondition, step_result, creator, priority, requirement_ids = parse_json_form(
        'casecreate')
    if CaseBusiness.project_permission(mid=module_id):
        return json_detail_render(109)
    ret, msg = CaseBusiness.create(module_id, ctype, title, precondition,
                                   step_result, creator, priority,
                                   requirement_ids)
    return json_detail_render(ret, [], msg)
示例#7
0
def copy_case(case_id):
    """
    @api {post} /v1/case/duplication/{case_id} 复制 用例
    @apiName CopyCase
    @apiGroup 项目
    @apiDescription 复制用例
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code":0,
        "data":[],
        "message":"ok"
    }
    """
    code = CaseBusiness.copy_case_by_id(case_id)
    return {'code': code}
示例#8
0
def case_query_by_module_id_handler(mid):
    """
    @api {get} /v1/case/querybymodule/mid 查询 单个模块下的用例
    @apiName GetCaseByModuleId
    @apiGroup 项目
    @apiDescription 查询单个模块下的用例
    @apiParam {int} [page_size] 分页-单页数目
    @apiParam {int} [page_index] 分页-页数
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code": 0,
        "data": [
            {
                "cnumber": "TC8",
                "creation_time": "2018-12-19 11:04:57",
                "ctype": "1",
                "id": 8,
                "is_auto": 1,
                "modified_time": "2018-12-19 11:04:57",
                "module": "音频",
                "moduleid": 1,
                "precondition": "1231321321",
                "priority": "",
                "status": 0,
                "step_result": "{\"step_result\":[{\"step\":\"132\",\"expect\":\"321321321\"}]}",
                "title": "",
                "userid": 3,
                "username": "******"
            }
        ],
        "message": "ok",
        "page_index": 1,
        "page_size": 10,
        "total": 1
    }
    """
    page_size = request.args.get('page_size')
    page_index = request.args.get('page_index')
    data, count = CaseBusiness.paginate_data(mid=mid,
                                             page_size=page_size,
                                             page_index=page_index)

    return json_list_render2(0, data, page_size, page_index, count)
示例#9
0
 def team_case_issue_dashboard(cls, project_id, begin_date, end_date):
     testers = cls.user_trpc.requests('get',
                                      '/user/projectandrole',
                                      query={
                                          'project_id': project_id,
                                          'role_id': 3
                                      })
     data_temp = {}
     for tester in testers:
         userid = int(tester.get('userid'))
         nickname = tester.get('nickname')
         data_temp[userid] = dict(userid=userid,
                                  nickname=nickname,
                                  issue_count=0,
                                  case_count=0)
     data_temp = IssueDashBoardBusiness.issue_all_tester_dashboard_for_project(
         data_temp, project_id, begin_date, end_date)
     data_temp = CaseBusiness.case_all_tester_dashboard_for_project(
         data_temp, project_id, begin_date, end_date)
     return list(data_temp.values())
示例#10
0
def case_single_query_handler(case_id):
    """
    @api {get} /v1/case/{case_id} 查询 单个用例
    @apiName GetCaseByCaseId
    @apiGroup 项目
    @apiDescription 查询单个用例
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
    {
        "code": 0,
        "data": [
            {
                "cnumber": "TC3891",
                "creation_time": "2019-07-26 16:14:07",
                "ctype": "1",
                "id": 3891,
                "is_auto": 1,
                "modified_time": "2019-07-26 16:14:07",
                "module": "看板管理",
                "moduleid": 342,
                "precondition": "1",
                "priority": 0,
                "requirement":[
                    {
                        "requirement_id": 1,
                        "requirement_title": "123123",
                    }
                ],
                "status": 0,
                "step_result": "{\"step_result\":[{\"step\":\"1\",\"expect\":\"1\"}]}",
                "title": "1",
                "userid": 104,
                "username": "******"
            }
        ],
        "message": "ok"
    }
    """
    data = CaseBusiness.query_by_id(case_id)

    return json_detail_render(0, data)
示例#11
0
 def team_work_dashboard(cls, begin_date, end_date):
     testers = cls.user_trpc.requests('get', '/user/role/3')
     exc_case_info_list = TaskDashBoardBusiness.task_case_all_tester_dashboard(
         begin_date, end_date, testers=testers)
     create_issue_info_list = IssueDashBoardBusiness.issue_all_tester_dashboard(
         begin_date, end_date, testers=testers)
     create_case_info_list = CaseBusiness.case_all_tester_dashboard(
         begin_date, end_date, testers=testers)
     exc_case_info_list.sort(key=lambda z: z['userid'])
     create_issue_info_list.sort(key=lambda x: x['userid'])
     create_case_info_list.sort(key=lambda y: y['userid'])
     results = []
     for index in range(len(exc_case_info_list)):
         result = dict(
             userid=exc_case_info_list[index].get('userid'),
             nickname=exc_case_info_list[index].get('nickname'),
             picture=exc_case_info_list[index].get('picture'),
             exc_cases=exc_case_info_list[index].get('info'),
             submit_issues=create_issue_info_list[index].get('info'),
             create_cases=create_case_info_list[index].get('info'))
         results.append(result)
     return results
示例#12
0
def case_list():
    case_ids = parse_json_form('case_info_by_ids')
    data = CaseBusiness.case_info_by_ids(case_ids)
    return {'code': 0, 'data': data}
示例#13
0
 def query_by_project_id_total(cls, pid):
     ret = CaseBusiness.case_total_groupby_module().filter(
         Module.status == Module.ACTIVE, Module.project_id == pid).order_by(
             desc(Module.id)).group_by(Case.module_id).all()
     return ret