"""Tests for util funcs of the Source of Stream Pre-aggregation Workflow.""" import os from unittest.mock import MagicMock from unittest.mock import call from garcon.contrib.dynamo_feed_status import \ feed_status_ingestion as feed_status import raven from analytics_aggregation.flows.spotify_sos import utils def test_get_status_from_logetl(monkeypatch): """Test is_spotify_ingested task.""" get_overall_feed_status_mock = MagicMock() monkeypatch.setattr( feed_status, 'get_overall_status', get_overall_feed_status_mock) utils.is_spotify_ingested('2018-03-10') get_overall_feed_status_mock.assert_called_with('spotify', '2018-03-10') def test_capture_warning_via_sentry(monkeypatch): """Test capture_warning.""" activity_mock = MagicMock() environ_mock = MagicMock() get_mock = MagicMock(return_value='some_dsn') environ_mock.get = get_mock raven_client_mock = MagicMock() monkeypatch.setattr(os, 'environ', environ_mock) monkeypatch.setattr(raven, 'Client', raven_client_mock) utils.capture_warning('Some warning!', activity_mock) raven_client_mock.assert_has_calls([ call('some_dsn'), call().captureMessage('Some warning!')]) assert activity_mock.call_count == 0 def test_capture_warning_via_activity_logger(monkeypatch): """Test capture_warning.""" activity_mock = MagicMock() environ_mock = MagicMock() get_mock = MagicMock(return_value=None) environ_mock.get = get_mock monkeypatch.setattr(os, 'environ', environ_mock) utils.capture_warning('Some warning!', activity_mock) activity_mock.assert_has_calls([call.logger.warning('Some warning!')])