From c3068dd77cd94041a42ce23eb8c77339a19d9d22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=AD=A6=E5=B3=B0?= Date: Fri, 1 Jul 2022 17:15:06 +0800 Subject: [PATCH 1/2] feature: add sync suite manual --- services/tone_service.py | 41 +++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/services/tone_service.py b/services/tone_service.py index 7ce8882..3a38734 100644 --- a/services/tone_service.py +++ b/services/tone_service.py @@ -1,8 +1,11 @@ import asyncio import json -from models.tone_model import ToneCase, query_tone_case_type, query_tone_suite, ToneSyncPull + +from app import log from common.tone.api import TONE_SUITE_QUERY from common.tone.tone_request import get_res_from_tone +from models.tone_model import ToneCase, query_tone_case_type, query_tone_suite, ToneSyncPull, \ + batch_insert_or_update_case async def query_suite(data, page_num=1, page_size=20): @@ -57,7 +60,35 @@ async def query_suite_from_tone(last_sync_time): req_data = { 'last_sync_time': last_sync_time } - res = await get_res_from_tone('get', TONE_SUITE_QUERY, req_data) - if res.status_code == 200: - return json.loads(res.text), True - return {}, False + status_code, result = await get_res_from_tone('get', TONE_SUITE_QUERY, req_data) + log.logger.debug(f'sync suite result is {result}') + if status_code == 200: + return json.loads(result), True + return None, False + + +async def sync_suite_by_manual(): + last_sync_pull = await ToneSyncPull.query_obj_one() + if last_sync_pull: + last_sync_time = last_sync_pull.gmt_created.strftime('%Y-%m-%d %H:%M:%S') + else: + last_sync_time = '2000-01-01 00:00:00' + log.logger.info("begin sync suite result manual.......") + result, ok = await query_suite_from_tone(last_sync_time) + print(result, ok) + if not ok: + return '手动更新失败', False + case_list = list() + for case in result['data']: + case_obj = { + 'tone_case_id': case['case_id'], + 'tone_case_name': case['case_name'], + 'suite_id': case['suite_id'], + 'suite_name': case['suite_name'], + 'test_type': case['test_type'] + } + case_list.append(case_obj) + log.logger.debug(f'modified case list length {len(case_list)}') + await batch_insert_or_update_case(case_list) + await ToneSyncPull().save(dict()) + return None, True -- Gitee From 77883513a9930e430399e282f8e9b348b988dd9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=AD=A6=E5=B3=B0?= Date: Fri, 1 Jul 2022 17:17:39 +0800 Subject: [PATCH 2/2] feature: add route for sync suite manual --- views/tone_view.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/views/tone_view.py b/views/tone_view.py index 7e33381..885f761 100644 --- a/views/tone_view.py +++ b/views/tone_view.py @@ -3,7 +3,7 @@ import asyncio from common.http import rsp from services.auth_service import login_auth, read_auth -from services.tone_service import query_suite, get_tone_case_type, query_tone_cases, sync_suite +from services.tone_service import query_suite, get_tone_case_type, query_tone_cases, sync_suite, sync_suite_by_manual from services.tone_job_service import create_tone_job, tone_callback bp = Blueprint('tone', url_prefix='api/tone/') @@ -45,6 +45,15 @@ async def tone_callback_view(request): return rsp(data=result) +@bp.get('/sync') +@read_auth +async def test(_, user_infos): + result, ok = await sync_suite_by_manual() + if not ok: + return rsp(code=500, msg=result) + return rsp() + + @bp.listener('after_server_start') async def sync_data(bp, loop): asyncio.create_task(sync_suite()) -- Gitee