From 45d3d3aae1c3f2a5d3f3489a86de43c8993e6c2b Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Tue, 2 Aug 2022 18:35:24 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Backup=E3=83=90=E3=82=B1=E3=83=83?= =?UTF-8?q?=E3=83=88=E3=81=AE=E3=83=86=E3=82=B9=E3=83=88=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/crm-datafetch/tests/aws/test_s3.py | 87 ++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 6 deletions(-) diff --git a/ecs/crm-datafetch/tests/aws/test_s3.py b/ecs/crm-datafetch/tests/aws/test_s3.py index 44a4ee8c..1daab1e7 100644 --- a/ecs/crm-datafetch/tests/aws/test_s3.py +++ b/ecs/crm-datafetch/tests/aws/test_s3.py @@ -1,5 +1,5 @@ import pytest -from src.aws.s3 import ConfigBucket, DataBucket, S3Resource +from src.aws.s3 import BackupBucket, ConfigBucket, DataBucket, S3Resource @pytest.fixture @@ -168,7 +168,7 @@ class TestDataBucket: def test_put_csv(self, s3_test, s3_client, bucket_name, monkeypatch): """ Cases: - - 任意のファイルをPUTできること + - CSVファイルをPUTできること Arranges: - S3をモック化する - 環境変数をテスト用の値に置き換える @@ -179,7 +179,7 @@ class TestDataBucket: monkeypatch.setattr('src.aws.s3.CRM_IMPORT_DATA_FOLDER', 'crm/target') 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') 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): """ Cases: - - 他のバケットから任意のファイルをコピーできること + - 他のバケットからCSVファイルをコピーできること Arranges: - S3をモック化する - コピー先バケットを作成する @@ -212,14 +212,89 @@ class TestDataBucket: def test_data_bucket_str(self, s3_test, s3_client, bucket_name, monkeypatch): """ Cases: - - 設定ファイル配置バケットを文字列化したとき、バケット名が取得できること + - データ登録バケットを文字列化したとき、バケット名が取得できること Arranges: - 環境変数をテスト用の値に置き換える Expects: - - 環境変数の設定ファイル配置バケット名と一致する + - 環境変数のデータ登録バケット名と一致する """ monkeypatch.setattr('src.aws.s3.IMPORT_DATA_BUCKET', bucket_name) sut = DataBucket() 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