From d56a6c079d222b995bf05c4911c3946bb1e990d7 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 3 Aug 2022 16:47:06 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=E3=83=86=E3=82=B9=E3=83=88=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E3=81=A8=E6=9C=9F=E5=BE=85=E5=80=A4=E3=81=AF?= =?UTF-8?q?=E3=81=AA=E3=82=8B=E3=81=B9=E3=81=8F=E3=83=99=E3=82=BF=E6=9B=B8?= =?UTF-8?q?=E3=81=8D=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/crm-datafetch/tests/test_controller.py | 81 ++++++++++++++-------- 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/ecs/crm-datafetch/tests/test_controller.py b/ecs/crm-datafetch/tests/test_controller.py index 2861a4d0..f6da35e3 100644 --- a/ecs/crm-datafetch/tests/test_controller.py +++ b/ecs/crm-datafetch/tests/test_controller.py @@ -1,4 +1,3 @@ -import copy import logging from unittest.mock import MagicMock, patch @@ -12,23 +11,6 @@ from src.util.execute_datetime import ExecuteDateTime from .test_utils.log_message import generate_log_message_tuple -TEST_OBJECT_INFO_LIST = { - 'objects': [ - { - 'object_name': 'Account', - 'upload_file_name': 'Account_YYYYMMDDHHMMSS' - }, - { - 'object_name': 'Contact', - 'upload_file_name': 'Contact_YYYYMMDDHHMMSS' - }, - { - 'object_name': 'Call2_vod__c', - 'upload_file_name': 'Call2_vod__c_YYYYMMDDHHMMSS' - } - ] -} - EXPECT_PROCESS_RESULT = { 'Account': 'success', 'Contact': 'success', @@ -55,10 +37,26 @@ class TestController: monkeypatch.setattr(TargetObject, '_TargetObject__validate', lambda x: None) monkeypatch.setattr(LastFetchDatetime, '_LastFetchDatetime__validate', lambda x: None) mock_execute_datetime = ExecuteDateTime() - mock_target_objects = FetchTargetObjects(TEST_OBJECT_INFO_LIST) - mock_target_object_first = TargetObject(TEST_OBJECT_INFO_LIST['objects'][0], mock_execute_datetime) - mock_target_object_second = TargetObject(TEST_OBJECT_INFO_LIST['objects'][1], mock_execute_datetime) - mock_target_object_third = TargetObject(TEST_OBJECT_INFO_LIST['objects'][2], mock_execute_datetime) + objects = { + 'objects': [ + { + 'object_name': 'Account', + 'upload_file_name': 'Account_YYYYMMDDHHMMSS' + }, + { + 'object_name': 'Contact', + 'upload_file_name': 'Contact_YYYYMMDDHHMMSS' + }, + { + 'object_name': 'Call2_vod__c', + 'upload_file_name': 'Call2_vod__c_YYYYMMDDHHMMSS' + } + ] + } + mock_target_objects = FetchTargetObjects(objects) + mock_target_object_first = TargetObject(objects['objects'][0], mock_execute_datetime) + mock_target_object_second = TargetObject(objects['objects'][1], mock_execute_datetime) + mock_target_object_third = TargetObject(objects['objects'][2], mock_execute_datetime) mock_return_values = [mock_target_object_first, mock_target_object_second, mock_target_object_third] mock_last_fetch_datetime = LastFetchDatetime({ 'last_fetch_datetime_from': '1900-01-01T00:00:00.000Z', @@ -146,9 +144,9 @@ class TestController: assert generate_log_message_tuple(log_message='I-CTRL-01 CRMデータ取得処理を開始します') in caplog.record_tuples assert generate_log_message_tuple(log_message='I-CTRL-02 データ取得準備処理呼び出し') in caplog.record_tuples assert generate_log_message_tuple(log_message='I-CTRL-03 取得対象オブジェクトのループ処理開始') in caplog.record_tuples - for obj in TEST_OBJECT_INFO_LIST['objects']: - object_name = obj['object_name'] - upload_file_name = obj['upload_file_name'] + for name in ['Account', 'Contact', 'Call2_vod__c']: + object_name = name + upload_file_name = f'{name}_YYYYMMDDHHMMSS' assert generate_log_message_tuple(log_message='I-CTRL-05 オブジェクト情報形式チェック処理呼び出し') in caplog.record_tuples assert generate_log_message_tuple(log_message=f'I-CTRL-06 [{object_name}]のデータ取得を開始します') in caplog.record_tuples assert generate_log_message_tuple(log_message=f'I-CTRL-08 [{object_name}]のデータ取得期間設定処理呼び出し') in caplog.record_tuples @@ -160,7 +158,13 @@ class TestController: assert generate_log_message_tuple(log_message=f'I-CTRL-14 [{object_name}] CSVデータアップロード処理呼び出し') in caplog.record_tuples assert generate_log_message_tuple(log_message=f'I-CTRL-15 [{object_name}] 前回取得日時ファイル更新処理呼び出し') in caplog.record_tuples assert generate_log_message_tuple(log_message=f'I-CTRL-16 [{object_name}] 処理正常終了') in caplog.record_tuples - assert generate_log_message_tuple(log_message=f'I-CTRL-17 すべてのオブジェクトの処理が終了しました 実行結果:[{EXPECT_PROCESS_RESULT}]') in caplog.record_tuples + + expect_process_result = { + 'Account': 'success', + 'Contact': 'success', + 'Call2_vod__c': 'success' + } + assert generate_log_message_tuple(log_message=f'I-CTRL-17 すべてのオブジェクトの処理が終了しました 実行結果:[{expect_process_result}]') in caplog.record_tuples assert generate_log_message_tuple(log_message=f'I-CTRL-18 CRM_取得処理実施結果ファイルアップロード処理開始') in caplog.record_tuples assert generate_log_message_tuple(log_message=f'I-CTRL-19 すべてのデータの取得に成功しました') in caplog.record_tuples assert generate_log_message_tuple(log_message=f'I-CTRL-20 CRMデータ取得処理を終了します') in caplog.record_tuples @@ -219,8 +223,11 @@ class TestController: - オブジェクト情報形式チェック処理以降のプロセスが実行されないこと - 処理をスキップする旨を示すログメッセージが出力されていること """ - mock_check_object_info = copy.deepcopy(TEST_OBJECT_INFO_LIST)['objects'][0] - mock_check_object_info['is_skip'] = True + mock_check_object_info = { + 'object_name': 'Account', + 'is_skip': True + } + monkeypatch.setattr(TargetObject, '_TargetObject__validate', lambda x: None) mock_execute_datetime = ExecuteDateTime() mock_return_values = [TargetObject(mock_check_object_info, mock_execute_datetime)] @@ -274,8 +281,22 @@ class TestController: - 処理をスキップする旨を示すログメッセージが出力されていること - オブジェクト情報.is_skipがFalseのものはCSVアップロード処理のログメッセージが出力されていること """ - mock_check_object_infos = copy.deepcopy(TEST_OBJECT_INFO_LIST) - mock_check_object_infos['objects'][1]['is_skip'] = True + mock_check_object_infos = { + 'objects': [ + { + 'object_name': 'Account', + 'is_skip': False + }, + { + 'object_name': 'Contact', + 'is_skip': True + }, + { + 'object_name': 'Call2_vod__c', + 'is_skip': False + } + ] + } monkeypatch.setattr(FetchTargetObjects, '_FetchTargetObjects__validate', lambda x: None) monkeypatch.setattr(TargetObject, '_TargetObject__validate', lambda x: None) mock_execute_datetime = ExecuteDateTime()