/
/
/
1"""The demo plugin provider's recommendation method stubs."""
2
3from __future__ import annotations
4
5from unittest.mock import MagicMock
6
7import pytest
8from music_assistant_models.enums import ProviderType
9from music_assistant_models.media_items import UniqueList
10
11from music_assistant.providers._demo_plugin_provider import (
12 SUPPORTED_FEATURES,
13 MyDemoPluginprovider,
14)
15
16
17@pytest.fixture
18def demo_plugin_provider() -> MyDemoPluginprovider:
19 """Construct a minimal demo plugin provider with stubbed mass/manifest/config."""
20 mass = MagicMock()
21 manifest = MagicMock()
22 manifest.type = ProviderType.PLUGIN
23 manifest.domain = "demo_plugin"
24 config = MagicMock()
25 config.name = "Demo Plugin Provider"
26 config.instance_id = "demo_plugin_instance"
27 config.get_value = MagicMock(return_value="GLOBAL")
28 return MyDemoPluginprovider(mass, manifest, config, SUPPORTED_FEATURES)
29
30
31async def test_get_recommendations_returns_no_rows(
32 demo_plugin_provider: MyDemoPluginprovider,
33) -> None:
34 """The template's get_recommendations() returns no rows."""
35 assert await demo_plugin_provider.get_recommendations() == []
36
37
38async def test_get_recommendation_items_returns_empty(
39 demo_plugin_provider: MyDemoPluginprovider,
40) -> None:
41 """The template's get_recommendation_items() returns an empty UniqueList."""
42 items = await demo_plugin_provider.get_recommendation_items("unknown_row")
43 assert isinstance(items, UniqueList)
44 assert items == []
45