"""Unit tests for generic tasks of the FlowLoadMarketshareMixinSF mixin.""" from unittest.mock import call, MagicMock, patch import pytest from feed_ingestion.tasks.load_marketshare_table_tasks import \ load_marketshare_data @pytest.fixture def mock_task_status(): """Yield task status.""" task_status_path = ( 'feed_ingestion.tasks.load_marketshare_table_tasks.task_status') with patch(task_status_path) as task_status: task_status.is_completed_task.return_value = False task_status.mark_completed_task = MagicMock() yield task_status @pytest.fixture def mock_executor(): """Yield executor.""" path = ( 'feed_ingestion.tasks.' 'load_marketshare_table_tasks.registered_executors') with patch(path) as mock_re: mock_ex = MagicMock() mock_re.get.return_value = mock_ex yield mock_ex def test_load_marketshare_data(mock_executor, mock_task_status): """Test load_marketshare_data.""" load_marketshare_data( MagicMock(), 'google_play_marketshare', '2018-01-01', {}) mock_executor.assert_has_calls([ call().__enter__().delete_from_marketshare_table('2018-01-01'), call().__enter__().load_marketshare_data('2018-01-01'), ])