feat: DataBucketのテストコード追加

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2022-08-02 17:15:36 +09:00
parent bf59acf152
commit 4d444e025e

View File

@ -1,5 +1,5 @@
import pytest
from src.aws.s3 import ConfigBucket, S3Resource
from src.aws.s3 import ConfigBucket, DataBucket, S3Resource
@pytest.fixture
@ -157,3 +157,61 @@ class TestConfigBucket:
sut = ConfigBucket()
assert str(sut) == bucket_name
class TestDataBucket:
def test_put_csv(self, s3_test, s3_client, bucket_name, monkeypatch):
"""
Cases:
任意のファイルをPUTできること
Arranges:
Expects:
PUTしたファイルが存在する
"""
monkeypatch.setattr('src.aws.s3.IMPORT_DATA_BUCKET', bucket_name)
monkeypatch.setattr('src.aws.s3.CRM_IMPORT_DATA_FOLDER', 'crm/target')
sut = DataBucket()
actual = 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'
def test_put_csv_from(self, s3_test, s3_client, bucket_name, monkeypatch):
"""
Cases:
他のバケットから任意のファイルをコピーできること
Arranges:
Expects:
コピーしたファイルが存在する
"""
for_copy_bucket = 'for-copy-bucket'
s3_client.create_bucket(Bucket=for_copy_bucket)
s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.csv', Body=b'test,test,test')
monkeypatch.setattr('src.aws.s3.IMPORT_DATA_BUCKET', for_copy_bucket)
monkeypatch.setattr('src.aws.s3.CRM_IMPORT_DATA_FOLDER', 'crm/target')
sut = DataBucket()
sut.put_csv_from(bucket_name, 'hogehoge/test.csv')
actual = s3_client.get_object(Bucket=for_copy_bucket, Key=f'crm/target/test.csv')
assert actual['Body'].read().decode('utf-8') == 'test,test,test'
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