"""Tests for store_specific_youtube_adjustment connector.""" from unittest import mock from datalytics.bin import store_specific_youtube_adjustment as ya from datalytics.bin.store_specific_youtube_adjustment import main import datalytics.constants.youtube as youtube_const def test_update_max_date(): """Test if all update queries are being run in update_max_date().""" sf = mock.MagicMock() ya.update_max_date(sf, {'CMS': 'ORCH'}) for q in (youtube_const.UPDATE_1, youtube_const.UPDATE_2): sf.q.assert_any_call(q.format( CONTENT_OWNER='ORCH', ADJUSTMENT_PROD_TABLE=ya.ADJUSTMENT_PROD_TABLE)) def test_update_max_date_for_all_stores(monkeypatch): """Test if all stores are updated.""" sf_mock = mock.MagicMock() connect_mock = mock.MagicMock(return_value=sf_mock) update_max_date_mock = mock.MagicMock() s3_mock = mock.MagicMock() s3_ls_mock = mock.MagicMock( return_value=[ 'YouTube_599_IODA_label_AP_2017-01-01_report.csv', 'YouTube_599_IODA_label_AP_2017-03-01_report.csv' ] ) monkeypatch.setattr( 'datalytics.bin.store_specific_youtube_adjustment.connect', connect_mock) monkeypatch.setattr( 'datalytics.bin.store_specific_youtube_adjustment.email', mock.MagicMock()) monkeypatch.setattr( 'datalytics.bin.store_specific_youtube_adjustment.s3', s3_mock) monkeypatch.setattr( 'datalytics.bin.store_specific_youtube_adjustment.update_max_date', update_max_date_mock) s3_mock.ls = s3_ls_mock main() assert update_max_date_mock.call_count == 3 for cms in youtube_const.CMS_DICT: update_max_date_mock.assert_any_call(sf_mock, cms)