"""Unit tests for store availability functions.""" from unittest.mock import MagicMock from analytics.constants import store from analytics.utils import store_availability STORES = { 1: "Apple Music", 4: "Napster", 187: "Amazon Music", 286: "Spotify", } def test_get_store_names(): """Test get_store_names.""" result = store_availability.get_store_names() assert result == store.ACTIVE_STORE_NAMES def test_get_sources(): """Test get_sources includes YouTube.""" result = store_availability.get_sources() yt_store = {"id": 453, "name": "YouTube"} assert yt_store in result def test_get_store_ids(monkeypatch): """Test get_store_ids.""" monkeypatch.setattr( store_availability, "get_store_names", MagicMock(return_value=STORES) ) result = store_availability.get_store_ids() assert result == [1, 4, 187, 286] def test_get_query_store_ids(monkeypatch): """Test get_query_store_ids returns default if no query params.""" monkeypatch.setattr( store_availability, "get_store_names", MagicMock(return_value=STORES) ) result = store_availability.get_query_store_ids([]) assert result == [1, 4, 187, 286] def test_get_query_store_ids_with_params(monkeypatch): """Test get_query_store_ids returns intersection if query params.""" monkeypatch.setattr( store_availability, "get_store_names", MagicMock(return_value=STORES) ) result = store_availability.get_query_store_ids([187, 4]) assert result == [4, 187]