feat: 依存モジュールの例外処理テスト追加

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2022-10-12 19:05:36 +09:00
parent 7e62e59f11
commit 6f601b1340
2 changed files with 107 additions and 3 deletions

View File

@ -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] エラー内容:[書き込みエラー]'

View File

@ -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] エラー内容:[書き込みエラー]'