aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorT-Aji <tolujbd2@gmail.com>2024-08-14 12:25:57 +0100
committerT-Aji <tolujbd2@gmail.com>2024-08-14 12:26:29 +0100
commit4f0d6f287ae83d7cdc0df6988ab7b9de10912f16 (patch)
treee998ca0a0c4adc8e23b8e573a8a91ff0624a3693 /tests
parentcdb4577b5ad7ae1f708797de6bbf17e289bfac14 (diff)
downloadde-project-bentley-4f0d6f287ae83d7cdc0df6988ab7b9de10912f16.tar.gz
de-project-bentley-4f0d6f287ae83d7cdc0df6988ab7b9de10912f16.zip
feat/passing tests to helper function list_existing_s3_files
Diffstat (limited to 'tests')
-rw-r--r--tests/dummy.txt1
-rw-r--r--tests/test_extract_lambda.py49
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/dummy.txt b/tests/dummy.txt
new file mode 100644
index 0000000..af27ff4
--- /dev/null
+++ b/tests/dummy.txt
@@ -0,0 +1 @@
+This is a test file. \ No newline at end of file
diff --git a/tests/test_extract_lambda.py b/tests/test_extract_lambda.py
new file mode 100644
index 0000000..472e93a
--- /dev/null
+++ b/tests/test_extract_lambda.py
@@ -0,0 +1,49 @@
+import pytest
+import boto3
+from moto import mock_aws
+from src.extract_lambda import list_existing_s3_files #process_and_upload_tables
+import os
+import logging
+
+
+@pytest.fixture(scope='class')
+def aws_credentials():
+ os.environ["AWS_ACCESS_KEY_ID"] = 'testing'
+ os.environ["AWS_SECRET_ACCESS_KEY"] = 'testing'
+ os.environ["AWS_SECURIT_TOKEN"] = 'testing'
+ os.environ["AWS_SESSION_TOKEN"] = 'testing'
+ os.environ["AWS_DEFAULT_REGION"]= 'eu-west-2'
+
+@pytest.fixture(scope='class')
+def s3_client(aws_credentials):
+ with mock_aws():
+ yield boto3.client('s3')
+
+class TestListExistings3Files():
+ def test_error_if_no_bucket(self, s3_client, caplog):
+
+ logger = logging.getLogger()
+ logger.info('Testing now.')
+ caplog.set_level(logging.ERROR)
+ list_existing_s3_files(client=s3_client)
+ assert 'Error listing S3 objects' in caplog.text
+
+ def test_error_if_bucket_is_empty(self, s3_client, caplog):
+
+ s3_client.create_bucket(Bucket='extract_bucket',
+ CreateBucketConfiguration={
+ 'LocationConstraint': 'eu-west-2'
+ })
+ list_existing_s3_files(client=s3_client)
+ assert 'The bucket is empty' in caplog.text
+
+ def test_error_retrieving_object(self, s3_client, caplog):
+ s3_client.upload_file('tests/dummy.txt', 'extract_bucket', 'dummy.txt')
+ list_existing_s3_files(bucket_name='test_bucket', client=s3_client)
+
+ assert 'Error retrieving S3 object ' in caplog.text
+
+ def test_retrieves_file_content(self, s3_client, caplog):
+ result = list_existing_s3_files(client=s3_client)
+
+ assert list(result.values()) == ['This is a test file.'] \ No newline at end of file
git.ajschof.me — hosted by ajschofield — powered by cgit