"""Unit tests for check_and_trigger_approve_sales_files.""" from unittest.mock import call from unittest.mock import MagicMock from unittest.mock import patch from tasks.sales_approve.trigger_approve_sales_files import trigger_approve_sales_files_task # noqa: E501 @patch('tasks.sales_approve.trigger_approve_sales_files.helpers') @patch('tasks.sales_approve.trigger_approve_sales_files.ows') def test_trigger_approve_sales_files_task( mock_ows, mock_helpers, mock_sales_approve_dag_run): """Test accounting_period approve_sales_file event is created.""" sales_file_id = 123 accounting_period = {'accounting_period_id': 32} mock_event = MagicMock(target_id=sales_file_id) sales_files = [{'sales_file_id': 1}, {'sales_file_id': 123}] sales_file_states = [{'action_status': 'complete'}, {'action_status': 'complete'}] mock_helpers.get_event_from_params.return_value = mock_event mock_helpers.get_event_records.return_value = ('mock sales file', accounting_period) mock_ows.get_accounting_period_sales_files.return_value = sales_files mock_ows.get_abacus_states.return_value = sales_file_states mock_ows.create_abacus_event.return_value = None trigger_approve_sales_files_task(mock_sales_approve_dag_run) mock_helpers.get_event_from_params.assert_called_once_with( mock_sales_approve_dag_run ) mock_helpers.get_event_records.assert_called_once_with(mock_event) mock_ows.get_accounting_period_sales_files.assert_called_once_with(32) assert call('sales_file', 1) in mock_ows.get_abacus_states.mock_calls assert call('sales_file', 123) in mock_ows.get_abacus_states.mock_calls mock_ows.create_abacus_event.assert_called_once_with( 'approve_sales_files', 32, 'accounting_period' ) @patch('tasks.sales_approve.trigger_approve_sales_files.helpers') @patch('tasks.sales_approve.trigger_approve_sales_files.ows') def test_trigger_approve_sales_files_task_does_not_create( mock_ows, mock_helpers, mock_sales_approve_dag_run): """Test accounting_period approve_sales_file event is not created.""" sales_file_id = 123 accounting_period = {'accounting_period_id': 32} mock_event = MagicMock(target_id=sales_file_id) sales_files = [{'sales_file_id': 1}, {'sales_file_id': 123}] sales_file_states = [{'action_status': 'complete'}, {'action_status': 'init'}] mock_helpers.get_event_from_params.return_value = mock_event mock_helpers.get_event_records.return_value = ('mock sales file', accounting_period) mock_ows.get_accounting_period_sales_files.return_value = sales_files mock_ows.get_abacus_states.return_value = sales_file_states mock_ows.create_abacus_event.return_value = None result = trigger_approve_sales_files_task( mock_sales_approve_dag_run) assert result mock_helpers.get_event_from_params.assert_called_once_with( mock_sales_approve_dag_run ) mock_helpers.get_event_records.assert_called_once_with(mock_event) mock_ows.get_accounting_period_sales_files.assert_called_once_with(32) assert call('sales_file', 1) in mock_ows.get_abacus_states.mock_calls assert call('sales_file', 123) not in mock_ows.get_abacus_states.mock_calls assert not mock_ows.create_abacus_event.called