feat: 依存モジュールの例外処理テスト追加
This commit is contained in:
parent
7e62e59f11
commit
6f601b1340
@ -153,17 +153,69 @@ class TestBackupCrmCsvDataProcess:
|
||||
execute_datetime = ExecuteDateTime()
|
||||
target_object = TargetObject(target_object_dict, execute_datetime)
|
||||
|
||||
with patch('src.backup_crm_csv_data_process.BackupBucket') as mock_backup_bucket:
|
||||
with patch('src.backup_crm_csv_data_process.BackupBucket') as mock_backup_bucket, \
|
||||
patch('src.backup_crm_csv_data_process.CsvWriter') as mock_writer:
|
||||
mock_backup_bucket_inst = mock_backup_bucket.return_value
|
||||
mock_backup_bucket_inst.put_csv.side_effect = Exception('登録エラー')
|
||||
|
||||
mock_writer_inst = mock_writer.return_value
|
||||
mock_writer_inst.write.return_value = ''
|
||||
# Act
|
||||
with pytest.raises(FileUploadException) as e:
|
||||
backup_crm_csv_data_process(target_object, execute_datetime, '')
|
||||
|
||||
# Assert
|
||||
|
||||
assert mock_writer_inst.write.called is True
|
||||
assert mock_backup_bucket_inst.put_csv.called is True
|
||||
assert e.value.error_id == 'E-CSVBK-01'
|
||||
assert e.value.func_name == CSVBK_JP_NAME
|
||||
assert e.value.args[0] == \
|
||||
f'[Account] CSVデータのバックアップに失敗しました ファイル名:[CRM_Account_{execute_datetime.format_date()}.csv] エラー内容:[登録エラー]'
|
||||
|
||||
def test_raise_put_csv_write_local_file(self, bucket_name, monkeypatch, caplog):
|
||||
"""
|
||||
Cases:
|
||||
CSVデータをバックアップするための一時ファイルを書き込めない場合、エラーが発生すること
|
||||
Arranges:
|
||||
- オブジェクト情報ファイル取得処理で例外が発生するようにする
|
||||
Expects:
|
||||
- 例外が発生する
|
||||
- ファイルが書き込めないエラーが返却される
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
target_object_dict = {
|
||||
'object_name': 'Account',
|
||||
'columns': [
|
||||
'Id',
|
||||
'AccountNumber',
|
||||
'LastModifiedDate',
|
||||
'LastModifiedById',
|
||||
'SystemModstamp',
|
||||
'IsDeleted'
|
||||
]
|
||||
}
|
||||
|
||||
execute_datetime = ExecuteDateTime()
|
||||
target_object = TargetObject(target_object_dict, execute_datetime)
|
||||
|
||||
with patch('src.backup_crm_csv_data_process.BackupBucket') as mock_backup_bucket, \
|
||||
patch('src.backup_crm_csv_data_process.CsvWriter') as mock_writer:
|
||||
mock_backup_bucket_inst = mock_backup_bucket.return_value
|
||||
mock_backup_bucket_inst.put_csv.return_value = ''
|
||||
|
||||
mock_writer_inst = mock_writer.return_value
|
||||
mock_writer_inst.write.side_effect = Exception('書き込みエラー')
|
||||
# Act
|
||||
with pytest.raises(FileUploadException) as e:
|
||||
backup_crm_csv_data_process(target_object, execute_datetime, '')
|
||||
|
||||
# Assert
|
||||
|
||||
assert mock_writer_inst.write.called is True
|
||||
assert mock_backup_bucket_inst.put_response_json.called is False
|
||||
assert e.value.error_id == 'E-CSVBK-01'
|
||||
assert e.value.func_name == CSVBK_JP_NAME
|
||||
assert e.value.args[0] == \
|
||||
f'[Account] CSVデータのバックアップに失敗しました ファイル名:[CRM_Account_{execute_datetime.format_date()}.csv] エラー内容:[書き込みエラー]'
|
||||
|
||||
@ -145,8 +145,8 @@ class TestBackupCrmDataProcess:
|
||||
|
||||
# Assert
|
||||
|
||||
assert mock_backup_bucket_inst.put_response_json.called is True
|
||||
assert mock_writer_inst.write.called is True
|
||||
assert mock_backup_bucket_inst.put_response_json.called is True
|
||||
|
||||
def test_raise_put_response_json(self, bucket_name, monkeypatch, caplog):
|
||||
"""
|
||||
@ -175,17 +175,69 @@ class TestBackupCrmDataProcess:
|
||||
execute_datetime = ExecuteDateTime()
|
||||
target_object = TargetObject(target_object_dict, execute_datetime)
|
||||
|
||||
with patch('src.backup_crm_data_process.BackupBucket') as mock_backup_bucket:
|
||||
with patch('src.backup_crm_data_process.BackupBucket') as mock_backup_bucket, \
|
||||
patch('src.backup_crm_data_process.JsonWriter') as mock_writer:
|
||||
mock_backup_bucket_inst = mock_backup_bucket.return_value
|
||||
mock_backup_bucket_inst.put_response_json.side_effect = Exception('登録エラー')
|
||||
|
||||
mock_writer_inst = mock_writer.return_value
|
||||
mock_writer_inst.write.return_value = ''
|
||||
# Act
|
||||
with pytest.raises(FileUploadException) as e:
|
||||
backup_crm_data_process(target_object, {}, execute_datetime)
|
||||
|
||||
# Assert
|
||||
|
||||
assert mock_writer_inst.write.called is True
|
||||
assert mock_backup_bucket_inst.put_response_json.called is True
|
||||
assert e.value.error_id == 'E-RESBK-01'
|
||||
assert e.value.func_name == RESBK_JP_NAME
|
||||
assert e.value.args[0] == \
|
||||
f'[Account] 電文データのバックアップに失敗しました ファイル名:[CRM_Account_{execute_datetime.format_date()}.json] エラー内容:[登録エラー]'
|
||||
|
||||
def test_raise_put_response_json_write_local_file(self, bucket_name, monkeypatch, caplog):
|
||||
"""
|
||||
Cases:
|
||||
CRM電文データをS3に配置するための一時ファイルを書き込めない場合、エラーが発生すること
|
||||
Arranges:
|
||||
- オブジェクト情報ファイル取得処理で例外が発生するようにする
|
||||
Expects:
|
||||
- 例外が発生する
|
||||
- ファイルが書き込めないエラーが返却される
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
target_object_dict = {
|
||||
'object_name': 'Account',
|
||||
'columns': [
|
||||
'Id',
|
||||
'AccountNumber',
|
||||
'LastModifiedDate',
|
||||
'LastModifiedById',
|
||||
'SystemModstamp',
|
||||
'IsDeleted'
|
||||
]
|
||||
}
|
||||
|
||||
execute_datetime = ExecuteDateTime()
|
||||
target_object = TargetObject(target_object_dict, execute_datetime)
|
||||
|
||||
with patch('src.backup_crm_data_process.BackupBucket') as mock_backup_bucket, \
|
||||
patch('src.backup_crm_data_process.JsonWriter') as mock_writer:
|
||||
mock_backup_bucket_inst = mock_backup_bucket.return_value
|
||||
mock_backup_bucket_inst.put_response_json.return_value = ''
|
||||
|
||||
mock_writer_inst = mock_writer.return_value
|
||||
mock_writer_inst.write.side_effect = Exception('書き込みエラー')
|
||||
# Act
|
||||
with pytest.raises(FileUploadException) as e:
|
||||
backup_crm_data_process(target_object, {}, execute_datetime)
|
||||
|
||||
# Assert
|
||||
|
||||
assert mock_writer_inst.write.called is True
|
||||
assert mock_backup_bucket_inst.put_response_json.called is False
|
||||
assert e.value.error_id == 'E-RESBK-01'
|
||||
assert e.value.func_name == RESBK_JP_NAME
|
||||
assert e.value.args[0] == \
|
||||
f'[Account] 電文データのバックアップに失敗しました ファイル名:[CRM_Account_{execute_datetime.format_date()}.json] エラー内容:[書き込みエラー]'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user