"""Test snowflake_copy_approved_sales task.""" from unittest.mock import patch from lib import config from tasks.sales_approve.snowflake_copy_approved_sales import copy_approved_sales @patch('tasks.sales_approve.snowflake_copy_approved_sales.RoyaltySnowflakeHook') @patch('tasks.sales_approve.snowflake_copy_approved_sales.helpers') @patch( 'tasks.sales_approve.snowflake_copy_approved_sales.copy_approved_distribution_sales' ) def test_copy_approved_distribution_sales( mock_template, mock_helpers, mock_hook, mock_sales_approve_event, mock_sales_approve_dag_run ): """Test using snowflake hook to copy approved distribution sales from temp to 'final' table.""" # noqa: E501 sales_file_id = mock_sales_approve_event.get('target_id') accounting_period = { 'accounting_period_id': 123, 'accounting_period_name': 'Month Year', 'contract_type': 'distribution' } sales_file = { 'sales_file_id': sales_file_id, 'file_name': 'make it rain' } mock_helpers.get_event_from_params.return_value.target_id = sales_file_id mock_helpers.get_event_records.return_value = (sales_file, accounting_period) mock_template.return_value.render.return_value = 'COPY STATEMENT' mock_hook.return_value.run.return_value = True copy_approved_sales(mock_sales_approve_dag_run) mock_helpers.get_event_from_params.assert_called_once_with( mock_sales_approve_dag_run ) mock_hook.assert_called_once_with(snowflake_conn_id=config.SNOWFLAKE_CONN_NAME) mock_template.assert_called_once() mock_template.return_value.render.assert_called_once_with( env=config.OWS_ENV, sales_file_id=sales_file_id ) mock_hook.return_value.run.assert_called_once() @patch('tasks.sales_approve.snowflake_copy_approved_sales.RoyaltySnowflakeHook') @patch('tasks.sales_approve.snowflake_copy_approved_sales.helpers') @patch( 'tasks.sales_approve.snowflake_copy_approved_sales.copy_approved_nr_sales' ) def test_copy_approved_nr_sales( mock_template, mock_helpers, mock_hook, mock_sales_approve_event, mock_sales_approve_dag_run ): """Test using snowflake hook to copy approved NR sales from temp to 'final' table.""" # noqa: E501 sales_file_id = mock_sales_approve_event.get('target_id') accounting_period = { 'accounting_period_id': 123, 'accounting_period_name': 'Month Year', 'contract_type': 'neighbouring_rights' } sales_file = { 'sales_file_id': sales_file_id, 'file_name': 'make it rain' } mock_helpers.get_event_from_params.return_value.target_id = sales_file_id mock_helpers.get_event_records.return_value = (sales_file, accounting_period) mock_template.return_value.render.return_value = 'COPY STATEMENT' mock_hook.return_value.run.return_value = True copy_approved_sales(mock_sales_approve_dag_run) mock_helpers.get_event_from_params.assert_called_once_with( mock_sales_approve_dag_run ) mock_hook.assert_called_once_with(snowflake_conn_id=config.SNOWFLAKE_CONN_NAME) mock_template.assert_called_once() mock_template.return_value.render.assert_called_once_with( env=config.OWS_ENV, sales_file_id=sales_file_id ) mock_hook.return_value.run.assert_called_once()