aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorT-Aji <tolujbd2@gmail.com>2024-08-14 18:14:01 +0100
committerT-Aji <tolujbd2@gmail.com>2024-08-14 18:14:01 +0100
commit848a86b7f3b9c5ce16cd774d19e3fa62ca8ffc68 (patch)
tree39fad2612838bd1cb73f9ae8897780702be45a75 /tests
parent45e025ac0c4ae8c721cb0b875fd0abd67cc2bc07 (diff)
downloadde-project-bentley-848a86b7f3b9c5ce16cd774d19e3fa62ca8ffc68.tar.gz
de-project-bentley-848a86b7f3b9c5ce16cd774d19e3fa62ca8ffc68.zip
test: mid-through test for process_and_upload_tables
Diffstat (limited to 'tests')
-rw-r--r--tests/test_extract_lambda.py35
1 files changed, 32 insertions, 3 deletions
diff --git a/tests/test_extract_lambda.py b/tests/test_extract_lambda.py
index 18c49fc..74d7e2c 100644
--- a/tests/test_extract_lambda.py
+++ b/tests/test_extract_lambda.py
@@ -3,7 +3,7 @@ import boto3
from moto import mock_aws
from unittest.mock import patch
from unittest import TestCase
-from src.extract_lambda import list_existing_s3_files, connect_to_database, DBConnectionException #process_and_upload_tables
+from src.extract_lambda import list_existing_s3_files, connect_to_database, DBConnectionException, process_and_upload_tables
import os
import logging
@@ -33,7 +33,7 @@ def s3_client(aws_credentials):
with mock_aws():
yield boto3.client('s3')
-class TestListExistings3Files:
+class TestListExistingS3Files:
def test_error_if_no_bucket(self, s3_client, caplog):
logger = logging.getLogger()
@@ -80,4 +80,33 @@ class TestConnectToDatabase:
caplog.set_level(logging.ERROR)
with pytest.raises(DBConnectionException):
connect_to_database()
- assert 'Interface error' in caplog.text \ No newline at end of file
+ assert 'Interface error' in caplog.text
+
+class TestProcessAndUploadTables:
+ def test_error_process_and_upload_tables(mock_conn, mock_config, s3_client, caplog, mocker):
+ logger = logging.getLogger()
+ logger.info('Testing now.')
+ caplog.set_level(logging.ERROR)
+
+ with patch("src.extract_lambda.Connection", autospec=True) as mock_conn:
+ mock_db = connect_to_database()
+ # need to add a table
+ s3_key = 'dummy/2024/8/14/dummy_16:46:30.txt'
+ mock_existing_files = mocker.Mock(return_value={s3_key: 'This is a test file.' })
+ s3_client.create_bucket(Bucket='extract_bucket',
+ CreateBucketConfiguration={
+ 'LocationConstraint': 'eu-west-2'
+ })
+ s3_client.upload_file('tests/dummy.txt', 'extract_bucket', s3_key)
+ process_and_upload_tables(mock_db, mock_existing_files, client=s3_client)
+
+ assert 'Error uploading to S3' in caplog.text
+
+#@pytest.mark.describe("Helpers")
+# @pytest.mark.it("Query processor returns correctly formatted dict")
+# def test_process_query():
+# with patch("src.api.helpers.get_db_connection") as mock_conn:
+# mock_conn().run.side_effect = db_data
+# mock_conn().columns = sample_headers
+# result = process_query("test query")
+# assert result == sample_result \ No newline at end of file
git.ajschof.me — hosted by ajschofield — powered by cgit