"""Unit tests for Amazon Unlimited Ingestion Workflow.""" from unittest.mock import MagicMock from garcon.activity import Activity from yt_conflict_elasticsearch.flows.elasticsearch_export.flow import Flow def test_decider_schedules_bootstrap(): """Decider schedules a bootstrap activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[0] assert name == 'bootstrap' assert isinstance(activity, Activity) def test_decider_schedules_store_conflicts_in_database_as_csv(): """Decider schedules a store csv to S3 activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[1] assert name == 'store_conflicts_in_database_as_csv' assert isinstance(activity, Activity) def test_decider_schedules_transform_csv_to_json_conflicts(): """Decider schedules transform CSV to JSON activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[2] assert name == 'transform_csv_to_json_conflicts' assert isinstance(activity, Activity) def test_decider_schedules_create_elasticsearch_index(): """Decider schedules create ES index activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[3] assert name == 'create_elasticsearch_index' assert isinstance(activity, Activity) def test_decider_schedules_populate_elasticsearch_index(): """Decider schedules populate ES index activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[4] assert name == 'populate_elasticsearch_index' assert isinstance(activity, Activity) def test_decider_schedules_mark_indexed_conflicts(): """Decider schedules mark indexed conflicts activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[5] assert name == 'mark_indexed_conflicts' assert isinstance(activity, Activity) def test_decider_schedules_remove_responded_conflicts(): """Decider schedules remove responded conflicts from ES activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[6] assert name == 'remove_responded_conflicts_from_es' assert isinstance(activity, Activity) def test_decider_schedules_remove_resolved_conflicts(): """Decider schedules remove resolved conflicts from ES activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[7] assert name == 'remove_resolved_conflicts_from_es' assert isinstance(activity, Activity) def test_decider_schedules_clean_up_s3(): """Decider schedules delete conflicts files from S3 activity.""" schedule = MagicMock() flow = Flow() context = {} flow.decider(schedule, context) (name, activity), _ = schedule.call_args_list[8] assert name == 'clean_up_s3' assert isinstance(activity, Activity)