/
/
/
1"""Provider-side regression tests for the recommendation result contract."""
2
3from __future__ import annotations
4
5from unittest.mock import AsyncMock, Mock
6
7import pytest
8from music_assistant_models.media_items import UniqueList
9
10from music_assistant.providers.zvuk_music.provider import ZvukMusicProvider
11
12
13@pytest.mark.asyncio
14@pytest.mark.parametrize("item_id", ["for_you", "editorial"])
15async def test_successful_recommendation_rows_return_unique_lists(item_id: str) -> None:
16 """Successful recommendation rows preserve the ``UniqueList`` contract."""
17 provider = Mock(spec=ZvukMusicProvider)
18 provider._get_for_you_playlists = AsyncMock(return_value=[])
19 provider._get_editorial_playlists = AsyncMock(return_value=[])
20 provider.get_recommendation_items = ZvukMusicProvider.get_recommendation_items.__get__(
21 provider, ZvukMusicProvider
22 )
23
24 result = await provider.get_recommendation_items(item_id)
25
26 assert isinstance(result, UniqueList)
27