"""Unit tests for Membran Workflow.""" from unittest import mock from unittest.mock import MagicMock from feed_ingestion.flows.physical_warehouse_reports.flow import Flow def test_decider(): """Test normal decider execution.""" schedule = MagicMock() schedule_result_object = MagicMock() schedule_result_object.result = {} schedule.return_value = schedule_result_object flow = Flow() flow.decider(schedule, {'context_date': '2017-08-27'}) schedule.assert_has_calls([ mock.call('bootstrap', mock.ANY), mock.call('grab_drop_files_s3', mock.ANY, requires=[mock.ANY]), mock.call('set_status_to_downloaded', mock.ANY, requires=[mock.ANY]), mock.call('gzip_and_put', mock.ANY, requires=[mock.ANY]), mock.call('load_staging_raw_table', mock.ANY, requires=[mock.ANY]), mock.call( 'set_status_to_populated_raw_table', mock.ANY, requires=[mock.ANY]) ]) def test_fetch_from_drop_location_when_report_not_found(): """Decider quits if data is already ingested.""" bootstrap = MagicMock() bootstrap.result = {'grab_drop_files_s3.stop': True} schedule = MagicMock(return_value=bootstrap) flow = Flow() flow.decider(schedule, {'context_date': '2017-08-27'}) schedule.assert_has_calls([ mock.call('bootstrap', mock.ANY), mock.call('grab_drop_files_s3', mock.ANY, requires=[mock.ANY]) ])