"""Unit tests for snapshot_contract_mechanical_deductions task.""" from unittest.mock import patch from lib import config from tasks.accounting_run_calculate.snapshot_contract_mechanical_deductions \ import snapshot_contract_mechanical_deductions_task import_path = 'tasks.accounting_run_calculate.snapshot_contract_mechanical_deductions' @patch(f'{import_path}.RoyaltySnowflakeHook') @patch(f'{import_path}.helpers') @patch(f'{import_path}.insert_snapshot_contract_mechanical_deduction_template') def test_snapshot_contract_mechanical_deductions_task( mock_template, mock_helpers, mock_hook, mock_accounting_run_calculate_dag_run, mock_accounting_run_calculate_event ): """Test task that snapshots royalty_accounting contract_mechanical_deduction data into snowflake.""" # noqa: #501 accounting_period = { 'accounting_period_id': 123, 'accounting_period_name': 'Period Name', 'statement_period_id': 123 } accounting_run = { 'accounting_run_id': 1021, 'run_controller_id': 11, 'run_controller_name': 'AWAL GDA' } mock_helpers.get_event_from_params.return_value.target_id = accounting_run['accounting_run_id'] # noqa: #501 mock_helpers.get_event_records.return_value = accounting_period, accounting_run mock_template.return_value.render.return_value = \ 'INSERT INTO SNAPSHOT_CONTRACT_MECHANICAL_DEDUCTION FROM royalty_accounting REPLICA' # noqa: #501 mock_hook.return_value.run.return_value = True snapshot_contract_mechanical_deductions_task(mock_accounting_run_calculate_dag_run) mock_helpers.get_event_from_params.assert_called_once_with( mock_accounting_run_calculate_dag_run ) mock_hook.assert_called_once_with(snowflake_conn_id=config.SNOWFLAKE_CONN_NAME) mock_template.return_value.render.assert_called_once_with( accounting_run_id=accounting_run['accounting_run_id'], run_controller_id=accounting_run['run_controller_id'], schema=config.OWS_ENV.upper() ) mock_hook.return_value.run.assert_called_once()