feat: Backupバケットのテスト追加

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2022-08-02 18:35:24 +09:00
parent a1613087df
commit 45d3d3aae1

View File

@ -1,5 +1,5 @@
import pytest import pytest
from src.aws.s3 import ConfigBucket, DataBucket, S3Resource from src.aws.s3 import BackupBucket, ConfigBucket, DataBucket, S3Resource
@pytest.fixture @pytest.fixture
@ -168,7 +168,7 @@ class TestDataBucket:
def test_put_csv(self, s3_test, s3_client, bucket_name, monkeypatch): def test_put_csv(self, s3_test, s3_client, bucket_name, monkeypatch):
""" """
Cases: Cases:
- 任意のファイルをPUTできること - CSVファイルをPUTできること
Arranges: Arranges:
- S3をモック化する - S3をモック化する
- 環境変数をテスト用の値に置き換える - 環境変数をテスト用の値に置き換える
@ -179,7 +179,7 @@ class TestDataBucket:
monkeypatch.setattr('src.aws.s3.CRM_IMPORT_DATA_FOLDER', 'crm/target') monkeypatch.setattr('src.aws.s3.CRM_IMPORT_DATA_FOLDER', 'crm/target')
sut = DataBucket() sut = DataBucket()
actual = sut.put_csv('test.csv', 'test,test,test') sut.put_csv('test.csv', 'test,test,test')
actual = s3_client.get_object(Bucket=bucket_name, Key=f'crm/target/test.csv') actual = s3_client.get_object(Bucket=bucket_name, Key=f'crm/target/test.csv')
assert actual['Body'].read().decode('utf-8') == 'test,test,test' assert actual['Body'].read().decode('utf-8') == 'test,test,test'
@ -187,7 +187,7 @@ class TestDataBucket:
def test_put_csv_from(self, s3_test, s3_client, bucket_name, monkeypatch): def test_put_csv_from(self, s3_test, s3_client, bucket_name, monkeypatch):
""" """
Cases: Cases:
- 他のバケットから任意のファイルをコピーできること - 他のバケットからCSVファイルをコピーできること
Arranges: Arranges:
- S3をモック化する - S3をモック化する
- コピー先バケットを作成する - コピー先バケットを作成する
@ -212,14 +212,89 @@ class TestDataBucket:
def test_data_bucket_str(self, s3_test, s3_client, bucket_name, monkeypatch): def test_data_bucket_str(self, s3_test, s3_client, bucket_name, monkeypatch):
""" """
Cases: Cases:
- 設定ファイル配置バケットを文字列化したときバケット名が取得できること - データ登録バケットを文字列化したときバケット名が取得できること
Arranges: Arranges:
- 環境変数をテスト用の値に置き換える - 環境変数をテスト用の値に置き換える
Expects: Expects:
- 環境変数の設定ファイル配置バケット名と一致する - 環境変数のデータ登録バケット名と一致する
""" """
monkeypatch.setattr('src.aws.s3.IMPORT_DATA_BUCKET', bucket_name) monkeypatch.setattr('src.aws.s3.IMPORT_DATA_BUCKET', bucket_name)
sut = DataBucket() sut = DataBucket()
assert str(sut) == bucket_name assert str(sut) == bucket_name
class TestBackupBucket:
def test_put_csv(self, s3_test, s3_client, bucket_name, monkeypatch):
"""
Cases:
- CSVファイルをPUTできること
Arranges:
- S3をモック化する
- 環境変数をテスト用の値に置き換える
Expects:
- PUTしたファイルが存在する
"""
monkeypatch.setattr('src.aws.s3.CRM_BACKUP_BUCKET', bucket_name)
monkeypatch.setattr('src.aws.s3.CRM_IMPORT_DATA_BACKUP_FOLDER', 'data_import')
sut = BackupBucket()
sut.put_csv('test.csv', 'test,test,test')
actual = s3_client.get_object(Bucket=bucket_name, Key=f'data_import/test.csv')
assert actual['Body'].read().decode('utf-8') == 'test,test,test'
def test_put_response_json(self, s3_test, s3_client, bucket_name, monkeypatch):
"""
Cases:
- JSONファイルをPUTできること
Arranges:
- S3をモック化する
- 環境変数をテスト用の値に置き換える
Expects:
- PUTしたファイルが存在する
"""
monkeypatch.setattr('src.aws.s3.CRM_BACKUP_BUCKET', bucket_name)
monkeypatch.setattr('src.aws.s3.RESPONSE_JSON_BACKUP_FOLDER', 'response_json')
sut = BackupBucket()
sut.put_response_json('test.json', {"test": "test"})
actual = s3_client.get_object(Bucket=bucket_name, Key=f'response_json/test.json')
assert actual['Body'].read().decode('utf-8') == '{"test": "test"}'
def test_put_result_json(self, s3_test, s3_client, bucket_name, monkeypatch):
"""
Cases:
- JSONファイルをPUTできること
Arranges:
- S3をモック化する
- 環境変数をテスト用の値に置き換える
Expects:
- PUTしたファイルが存在する
"""
monkeypatch.setattr('src.aws.s3.CRM_BACKUP_BUCKET', bucket_name)
monkeypatch.setattr('src.aws.s3.PROCESS_RESULT_FOLDER', 'data_import')
sut = BackupBucket()
sut.put_result_json('result.json', {"test": "test"})
actual = s3_client.get_object(Bucket=bucket_name, Key=f'data_import/result.json')
assert actual['Body'].read().decode('utf-8') == '{"test": "test"}'
def test_backup_bucket_str(self, s3_test, s3_client, bucket_name, monkeypatch):
"""
Cases:
- CRMデータバックアップバケットを文字列化したときバケット名が取得できること
Arranges:
- 環境変数をテスト用の値に置き換える
Expects:
- 環境変数のCRMデータバックアップバケット名と一致する
"""
monkeypatch.setattr('src.aws.s3.CRM_BACKUP_BUCKET', bucket_name)
sut = BackupBucket()
assert str(sut) == bucket_name