from datetime import date from unittest import mock import pytest from playlist.queries.fetch_queries import fetch_total_vs_playlist_streams_time_series @pytest.mark.disable_mock_execute def test_minimal(mock_execute_orm, mock_template_engine): query_params = { "isrc": "QM6N22019571", } permissions = { "permission_label_ids": ["1", "2", "3"], } fetch_total_vs_playlist_streams_time_series(query_params, permissions) db_call_args = mock_template_engine.prepare_query.call_args[0][1] assert db_call_args["isrc"] == "QM6N22019571" assert "start_date" not in db_call_args assert "end_date" not in db_call_args @pytest.mark.disable_mock_execute def test_date_filters(mock_execute_orm, mock_template_engine): query_params = { "isrc": "QM6N22019571", "start_date": "2020-01-23", "end_date": "2020-09-23", } permissions = { "permission_label_ids": ["1", "2", "3"], } fetch_total_vs_playlist_streams_time_series(query_params, permissions) db_call_args = mock_template_engine.prepare_query.call_args[0][1] assert db_call_args["isrc"] == "QM6N22019571" assert db_call_args["start_date"] == date(2020, 1, 23) assert db_call_args["end_date"] == date(2020, 9, 23) @pytest.mark.disable_mock_execute def test_countries(mock_execute_orm, mock_template_engine): query_params = { "isrc": "QM6N22019571", "stream_countries": ["GB", "DE"], } permissions = { "permission_label_ids": ["1", "2", "3"], } fetch_total_vs_playlist_streams_time_series(query_params, permissions) db_call_args = mock_template_engine.prepare_query.call_args[0][1] assert db_call_args["stream_countries"] == ["GB", "DE"] @pytest.mark.disable_mock_execute def test_store_ids(mock_execute_orm, mock_template_engine): query_params = { "isrc": "QM6N22019571", "store_ids": ["1", "286"], } permissions = { "permission_label_ids": ["1", "2", "3"], } fetch_total_vs_playlist_streams_time_series(query_params, permissions) db_call_args = mock_template_engine.prepare_query.call_args[0][1] assert db_call_args["store_ids"] == ["1", "286"] @pytest.mark.disable_mock_execute def test_global_participant(mock_execute_orm, mock_template_engine): query_params = { "global_participant_id": "90097833-cc23-470e-8643-2268e156497f", } permissions = { "permission_label_ids": ["1", "2", "3"], } fetch_total_vs_playlist_streams_time_series(query_params, permissions) db_call_args = mock_template_engine.prepare_query.call_args[0][1] assert ( db_call_args["global_participant_id"] == "90097833-cc23-470e-8643-2268e156497f" ) assert "start_date" not in db_call_args assert "end_date" not in db_call_args