"""Unit testcases for snowflake query template.""" from unittest.mock import patch from adjustments_json_validation.snowflake_query_template import ( get_formatted_query, ) def test_get_formatted_query(): """Test get_formatted_query function.""" with patch.dict( 'adjustments_json_validation.snowflake_query_template.SNOWFLAKE_CONFIG', {'schema': 'Test', 'db': 'DEV_ENGINEERING'}, ): result = get_formatted_query('check_if_temp_table_exists.sql') assert ( result.strip() == """DESCRIBE TABLE DEV_ENGINEERING.Test.TEMP_ADJUSTMENTS_UPLOAD;""".strip() ) def test_get_formatted_query_with_params(): """Test get_formatted_query function by sending params.""" params = {'stage': 's3//test-bucket', 's3_path': 'test.json.gz'} with patch.dict( 'adjustments_json_validation.snowflake_query_template.SNOWFLAKE_CONFIG', {'schema': 'Test', 'db': 'DEV_ENGINEERING'}, ): result = get_formatted_query('insert_into_temp_adjustments_uploads.sql', params) assert ( result.strip() == """ INSERT INTO DEV_ENGINEERING.Test.TEMP_ADJUSTMENTS_UPLOAD ( ACCOUNT_NAME, ACCOUNT_ID, CONTRACT_NAME, CONTRACT_ID, UPC, AMOUNT, CURRENCY, ACTIVITY_MONTH, ACTIVITY_YEAR, APPLY_TO_MONTH, APPLY_TO_YEAR, ADJUSTMENT_TYPE, CLIENT_FACING_COMMENTS, DISTRIBUTION_TYPE, INTERNAL_NOTE, APPLY_TO_FLOWTHROUGH_PAYMENT ) SELECT data:"Account Name"::VARCHAR, data:"Account ID"::VARCHAR, data:"Contract Name"::VARCHAR, data:"Contract ID"::VARCHAR, data:"UPC"::VARCHAR, data:"Amount"::VARCHAR, data:"Currency"::VARCHAR, data:"Activity Month"::VARCHAR, data:"Activity Year"::VARCHAR, data:"Statement Month"::VARCHAR, data:"Statement Year"::VARCHAR, data:"Adjustment Type"::VARCHAR, data:"Client Facing Comments"::VARCHAR, data:"Distribution Type"::VARCHAR, data:"Internal Note"::VARCHAR, data:"Apply to Flowthrough Payment"::VARCHAR FROM DEV_ENGINEERING.Test.RAW_JSON_DATA; """.strip() )