"""Tests for flow.""" from unittest import mock from unittest.mock import MagicMock, call from feed_ingestion.flows.delphi_crm.flow import Flow def test_flow_decider(): """Test normal decider execution.""" flow = Flow() schedule = MagicMock() schedule_result_object = MagicMock() schedule_result_object.result = { 'bootstrap.report_name': 'complaint_tracking', 'bootstrap.context_date': '2024-07-01', } schedule.return_value = schedule_result_object flow.decider(schedule) assert schedule.call_args_list == [ call('bootstrap', mock.ANY), call('check_files_on_s3', mock.ANY, requires=[mock.ANY]), call('load_staging_raw_table', mock.ANY, requires=[mock.ANY]), call('set_overall_status_ingested', mock.ANY, requires=[mock.ANY]), ] def test_flow_decider_bootstrap_stop(): """Test normal decider execution.""" flow = Flow() schedule = MagicMock() schedule_result_object = MagicMock() schedule_result_object.result = { 'bootstrap.stop': 'True', } schedule.return_value = schedule_result_object flow.decider(schedule) assert schedule.call_args_list == [ call('bootstrap', mock.ANY), ] def test_flow_decider_check_files_on_s3_stop(): """Test normal decider execution.""" flow = Flow() schedule = MagicMock() schedule_result_object = MagicMock() schedule_result_object.result = { 'check_files_on_s3.stop': 'True', } schedule.return_value = schedule_result_object flow.decider(schedule) assert schedule.call_args_list == [ call('bootstrap', mock.ANY), call('check_files_on_s3', mock.ANY, requires=[mock.ANY]), ]