import pytest from unittest import mock from server.client.clients.apollo_api import ApolloApiClient from tests.helpers import read_json_from_file @pytest.fixture def mocked_spotify_playlists_db_data(): with mock.patch.object(ApolloApiClient, "get_v1_playlists_data") as mocked_db_response: mocked_db_response.side_effect = get_spotify_db_playlists_data yield mocked_db_response async def get_spotify_db_playlists_data(*args, **kwargs): playlists_data = read_json_from_file("clients/apollo_api/spotify_v1_playlists_data").get("items", []) playlists_map = {data["id"]: data for data in playlists_data if data.get("id")} param_ids = kwargs.get("id", []) result_items = [] for _id in param_ids: pl_data = playlists_map.get(_id) if not pl_data: continue result_items.append(pl_data) return {"items": result_items} @pytest.fixture def mocked_spotify_playlists_db_markets(): with mock.patch.object(ApolloApiClient, "get_v1_playlists_markets") as mocked_db_response: mocked_db_response.side_effect = get_spotify_db_playlists_markets yield mocked_db_response async def get_spotify_db_playlists_markets(*args, **kwargs): markets_data = read_json_from_file("clients/apollo_api/spotify_v1_playlists_markets").get("items", []) playlists_map = {data["id"]: data for data in markets_data if data.get("id")} param_ids = kwargs.get("id", []) result_items = [] for _id in param_ids: pl_data = playlists_map.get(_id) if not pl_data: continue result_items.append(pl_data) return {"items": result_items}