"""Test jv_itunes_etl.""" from unittest.mock import MagicMock from unittest.mock import patch import pytest from royalties.jv_itunes_etl import etl_sme_jv_itunes_sales from royalties.jv_itunes_etl import get_s3_path @patch('royalties.jv_itunes_etl.SnowflakeSQLExecutor') def test_etl_sme_jv_itunes_sales(mock_connector): """Tests running ETL.""" mock_executor = MagicMock() mock_connector.return_value.__enter__.return_value.execute_query = \ mock_executor mock_config = MagicMock() mock_config.sf_config = { 'db': '', 'schema': '', } mock_connector.aws = { 'access_key': '', 'access_secret': '' } mock_connector.jv_s3 = {} etl_sme_jv_itunes_sales(mock_config) assert mock_executor.called_once @pytest.mark.parametrize('config,expected', [ ({ 'bucket': 's3://foo/', 'path': 'bar/', }, 's3://foo/bar'), ({ 'bucket': 'foo', 'path': 'bar' }, 's3://foo/bar'), ({ 'bucket': 'foo/', 'path': 'bar/' }, 's3://foo/bar') ]) def test_get_s3_path(config, expected): """Tests formatting s3 URLs.""" result = get_s3_path(config) assert result == expected