feat: 結果ファイルアップロード処理の例外テストを追加
This commit is contained in:
parent
7bd1e72ffd
commit
f3a1def88a
@ -7,8 +7,9 @@ from src.config.objects import (FetchTargetObjects, LastFetchDatetime,
|
||||
TargetObject)
|
||||
from src.error.exceptions import MeDaCaCRMDataFetchException
|
||||
from src.system_var.constants import (CHK_JP_NAME, CONV_JP_NAME, CSVBK_JP_NAME,
|
||||
DATE_JP_NAME, FETCH_JP_NAME, PRE_JP_NAME,
|
||||
RESBK_JP_NAME, UPD_JP_NAME, UPLD_JP_NAME)
|
||||
DATE_JP_NAME, END_JP_NAME, FETCH_JP_NAME,
|
||||
PRE_JP_NAME, RESBK_JP_NAME, UPD_JP_NAME,
|
||||
UPLD_JP_NAME)
|
||||
from src.util.execute_datetime import ExecuteDateTime
|
||||
|
||||
from .test_utils.log_message import generate_log_message_tuple
|
||||
@ -1060,3 +1061,78 @@ class TestController:
|
||||
assert generate_log_message_tuple(log_message=f'I-CTRL-17 すべてのオブジェクトの処理が終了しました 実行結果:[{expect_process_result}]') in caplog.record_tuples
|
||||
assert generate_log_message_tuple(
|
||||
log_level=logging.ERROR, log_message=f'E-CTRL-01 一部のデータ取得に失敗しています 詳細はログをご確認ください') in caplog.record_tuples
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'exception, message',
|
||||
[
|
||||
(ForTestMeDaCaCRMDataFetchException, f'E-ERR-01 [{END_JP_NAME}]でエラーが発生したため、処理を終了します'),
|
||||
(ForTestException, 'E-ERR-02 予期せぬエラーが発生したため、処理を終了します エラー内容: [例外発生]')
|
||||
])
|
||||
def test_raise_upload_result_data_process(self, s3_client, monkeypatch, caplog, exception, message):
|
||||
"""
|
||||
Cases:
|
||||
1. 取得処理実施結果アップロード処理でシステム例外が発生した場合、エラーで終了すること
|
||||
2. 取得処理実施結果アップロード処理で想定外の例外が発生した場合、エラーで終了すること
|
||||
Arranges:
|
||||
- パラメータ1:取得処理実施結果アップロード処理でシステム例外が発生するようにする
|
||||
- パラメータ2:取得処理実施結果アップロード処理で想定外の例外が発生するようにする
|
||||
Expects:
|
||||
- 取得処理実施結果アップロード処理で例外が発生すること
|
||||
- 取得処理実施結果アップロード処理で発生した例外のログメッセージが出力されていること
|
||||
"""
|
||||
monkeypatch.setattr(FetchTargetObjects, '_FetchTargetObjects__validate', lambda x: None)
|
||||
monkeypatch.setattr(TargetObject, '_TargetObject__validate', lambda x: None)
|
||||
monkeypatch.setattr(LastFetchDatetime, '_LastFetchDatetime__validate', lambda x: None)
|
||||
mock_execute_datetime = ExecuteDateTime()
|
||||
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',
|
||||
'last_fetch_datetime_to': '9999-12-31T59:59:59.000Z'
|
||||
}, mock_execute_datetime)
|
||||
mock_prepare_data_fetch_process = MagicMock(return_value=(mock_target_objects, mock_execute_datetime, {}))
|
||||
mock_check_object_info_process = MagicMock(side_effect=mock_return_values)
|
||||
mock_set_datetime_period_process = MagicMock(return_value=mock_last_fetch_datetime)
|
||||
mock_fetch_crm_data_process = MagicMock(side_effect=[{}, {}, {}])
|
||||
mock_backup_crm_data_process = MagicMock()
|
||||
mock_convert_crm_csv_data_process = MagicMock()
|
||||
mock_backup_crm_csv_data_process = MagicMock()
|
||||
mock_copy_crm_csv_data_process = MagicMock()
|
||||
mock_upload_last_fetch_datetime_process = MagicMock()
|
||||
mock_upload_result_data_process = MagicMock(side_effect=[exception(
|
||||
'E-END-01', END_JP_NAME, '例外発生'), None, None])
|
||||
|
||||
with patch('src.controller.prepare_data_fetch_process', mock_prepare_data_fetch_process),\
|
||||
patch('src.controller.check_object_info_process', mock_check_object_info_process), \
|
||||
patch('src.controller.set_datetime_period_process', mock_set_datetime_period_process),\
|
||||
patch('src.controller.fetch_crm_data_process', mock_fetch_crm_data_process),\
|
||||
patch('src.controller.backup_crm_data_process', mock_backup_crm_data_process),\
|
||||
patch('src.controller.convert_crm_csv_data_process', mock_convert_crm_csv_data_process),\
|
||||
patch('src.controller.backup_crm_csv_data_process', mock_backup_crm_csv_data_process),\
|
||||
patch('src.controller.copy_crm_csv_data_process', mock_copy_crm_csv_data_process),\
|
||||
patch('src.controller.upload_last_fetch_datetime_process', mock_upload_last_fetch_datetime_process),\
|
||||
patch('src.controller.upload_result_data_process', mock_upload_result_data_process):
|
||||
with pytest.raises(exception):
|
||||
controller.controller()
|
||||
assert generate_log_message_tuple(
|
||||
log_level=logging.ERROR,
|
||||
log_message=message) in caplog.record_tuples, '取得処理実施結果アップロード処理で発生した例外のログメッセージが出力されていること'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user