diff --git a/services/task_service.py b/services/task_service.py index f6c76d5dd80f8c4570adea419ce30ad8c3476a42..2d38fd6c0c357747ec2b65cd83a911bf87c345b0 100644 --- a/services/task_service.py +++ b/services/task_service.py @@ -3,9 +3,9 @@ from datetime import datetime from common.enums import Task_Run_Method, User_Role from models.case_model import Case from models.plan_model import Plan +from models.job_model import PerfResult, FuncResult from models.task_model import Task from models.tone_model import ToneCase -from models.job_model import PerfResult, FuncResult from services.const import ERROR_NO_OP_PERMISSION, ERROR_UN_EXISTED_TASK ERROR_UN_EXISTED_CASE_IN_PLAN = '该用例不存在于当前方案中,禁止关联' @@ -17,10 +17,10 @@ async def get_tasks(name=None, plan_id=None, is_paginate='', page_num=1, page_si conditions_list.append(Task.name.startswith(name)) conditions_dict['name'] = f'{name}%' if plan_id: - conditions_list.append(Task.id == plan_id) + conditions_list.append(Task.plan_id.in_([plan_id, -1])) conditions_dict['plan_id'] = plan_id if is_paginate == 'false': - return Task.query_dict_all(*conditions_list) + return await Task.query_dict_all(*conditions_list) return await Task.query_page(page_num=page_num, page_size=page_size, search=conditions_dict, desc=Task.id) @@ -91,17 +91,15 @@ async def __gen_run_result_case_infos(case_ids): async def create_task(data, creator): - plan = await Plan.query_obj_one(Plan.id == data['plan_id']) + plan = await Plan.query_obj_one(Plan.id == data.get('plan_id')) if 'plan_id' in data else None case_ids = ','.join(str(x) for x in data['cases']) case_infos = await __gen_run_result_case_infos(data['cases']) data.update({'run_result': {'case_infos': case_infos, 'remark': {}}}) - data.update(dict({'owner': creator, 'cases': case_ids, 'plan_title': plan.title})) + data.update(dict({'owner': creator, 'cases': case_ids, 'plan_title': plan.title if plan else ''})) result = await Task().save(data) - if plan.tasks == '': - plan.tasks = f'{result.id}' - else: - plan.tasks = f'{plan.tasks},{result.id}' - await plan.update() + if plan: + plan.tasks = f'{plan.tasks},{result.id}' if plan.tasks else f'{result.id}' + await plan.update() return result.to_dict(), True diff --git a/views/task_view.py b/views/task_view.py index beafe626191a41c5e585021f8bc879d696e74d1f..a22c984e1225a009ea1b86d0945544dceffcf275 100644 --- a/views/task_view.py +++ b/views/task_view.py @@ -39,8 +39,6 @@ async def create(request, user_infos): res, ok = check_args(args, request.json) if not ok: return res - if request.json['run_method'] == Task_Run_Method.MANUAL.value and 'config' not in request.json: - return rsp(code=400, msg=ERROR_LACK_MANUAL_TASK_CONFIG) result, ok = await create_task(request.json, user_infos['user_name']) if not ok: return rsp(code=500, msg=result)