From 2911684f69047838742e444223bf5a404b3577aa Mon Sep 17 00:00:00 2001 From: youhuo Date: Thu, 15 Sep 2022 19:10:37 +0800 Subject: [PATCH] fix: test prodcut associate plan status --- services/plan_service.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/services/plan_service.py b/services/plan_service.py index c94d476..144528a 100644 --- a/services/plan_service.py +++ b/services/plan_service.py @@ -4,13 +4,11 @@ import sqlalchemy from app import log from common.enums import Status_EN, Task_Run_Method, Case_Type, Case_Run_Method, User_Role, Test_Type -from common.tone.tone_request import gen_tone_job_type from models.case_model import Case -from models.device_model import Device from models.job_model import FuncResult, PerfResult, ToneJob from models.plan_model import Plan, PlanReview -from models.requirement_model import Requirement from models.product_model import ProductPlan +from models.requirement_model import Requirement from models.task_model import Task, update_manual_task_status from services.const import ERROR_UN_EXISTED_PLAN, ERROR_NO_REQUIREMENT_PERMISSION, ERROR_UN_EXISTED_REQUIREMENT from services.tone_job_service import create_tone_job @@ -249,6 +247,10 @@ def gen_plan_key(uuid): return 'plan-{}'.format(uuid) +def __get_end_tag(): + return [Status_EN.SUCCESS.value, Status_EN.FINISH.value, Status_EN.FAIL.value, Status_EN.SKIP.value] + + async def export_plan(plan_id): plan = await Plan.query_obj_one(Plan.id == plan_id) if not plan: @@ -259,12 +261,18 @@ async def export_plan(plan_id): return result task_dict, case_list, device_list = dict(), list(), list() tasks = await Task.query_obj_all(Task.id.in_(plan.tasks.split(','))) + complete_task_count, end_tag = 0, __get_end_tag() for task in tasks: + if task.status in end_tag: + complete_task_count += 1 task_dict[task.id] = task device_list.append(task.device_id) if task.cases: case_list.extend(task.cases.split(',')) - result['device_info'] = await Device.query_dict_all(Device.id.in_(device_list)) + if complete_task_count == len(tasks) and plan.status == Status_EN.INIT.RUNNING.value: + plan.status = Status_EN.FINISH.value + plan.report = True + await plan.update() cases = await Case.query_obj_all(Case.id.in_(case_list), Case.is_available == True) case_id_dict, case_name_dict = dict(), dict() for case in cases: -- Gitee