"""Tests for common tasks.""" from unittest.mock import Mock from analytics_aggregation.tasks import common as common_tasks from analytics_aggregation.util import common def test_check_feed_ingested_positive(monkeypatch): """Test check_feed_ingested.""" check_date = '2018-01-10' source_feed_name = 'source_feed_name' date_range = {'start_date': check_date, 'end_date': check_date} # Mocking list_of_dates_mock = Mock(return_value=[check_date]) monkeypatch.setattr(common, 'list_of_dates', list_of_dates_mock) is_feed_ingested_mock = Mock(return_value=True) monkeypatch.setattr(common, 'is_feed_ingested', is_feed_ingested_mock) # Tested function call result = common_tasks.check_feed_ingested( Mock(), source_feed_name, date_range) # Checks assert result == {} list_of_dates_mock.assert_called_once_with(**date_range) is_feed_ingested_mock.assert_called_once_with(source_feed_name, check_date) def test_check_feed_ingested_negative(monkeypatch): """Test check_feed_ingested with missing data.""" check_date = '2018-01-10' source_feed_name = 'source_feed_name' date_range = {'start_date': check_date, 'end_date': check_date} # Mocking list_of_dates_mock = Mock(return_value=[check_date]) monkeypatch.setattr(common, 'list_of_dates', list_of_dates_mock) is_feed_ingested_mock = Mock(return_value=False) monkeypatch.setattr(common, 'is_feed_ingested', is_feed_ingested_mock) expected_exit_message = Mock() exit_message_mock = Mock(return_value=expected_exit_message) monkeypatch.setattr(common, 'exit_message', exit_message_mock) # Tested function call result = common_tasks.check_feed_ingested( Mock(), source_feed_name, date_range) # Checks assert result == expected_exit_message list_of_dates_mock.assert_called_once_with(**date_range) is_feed_ingested_mock.assert_called_once_with(source_feed_name, check_date)