"""Test OWS to S3 ETL tool.""" from unittest.mock import patch from abacus_etl_tools.api_to_s3 import _ows_request from abacus_etl_tools.api_to_s3 import snapshot_as_csv from abacus_etl_tools.api_to_s3 import snapshot_as_parquet @patch('abacus_etl_tools.api_to_s3.awswrangler') @patch('abacus_etl_tools.api_to_s3.pandas') def test_snapshot_as_csv(_, mock_wrangler, mock_endpoint_request): """Test the CSV helper.""" snapshot_as_csv( { 'application': 'test', 'environment': 'test', 'service_name': 'ows-abacus-contract', 'path': '/transaction-types/' }, { 'path': 's3://foo/bar' } ) mock_wrangler.s3.to_csv.assert_called_once() @patch('abacus_etl_tools.api_to_s3.awswrangler') @patch('abacus_etl_tools.api_to_s3.pandas') def test_snapshot_as_parquet(_, mock_wrangler, mock_endpoint_request): """Test the parquet helper.""" snapshot_as_parquet( { 'application': 'test', 'environment': 'test', 'service_name': 'ows-abacus-contract', 'path': '/transaction-types/' }, { 'path': 's3://foo/bar' } ) mock_wrangler.s3.to_parquet.assert_called_once() @patch('abacus_etl_tools.api_to_s3.awswrangler') def test_ows_request(_, mock_endpoint_request): """Test the OWS connector.""" response = _ows_request({ 'application': 'test', 'environment': 'test', 'service_name': 'ows-abacus-contract', 'path': '/transaction-types/' }) assert response == mock_endpoint_request