/
/
/
1"""Tests for the in-memory provider icon store and accessor."""
2
3import base64
4
5from music_assistant_models.enums import ProviderIconVariant
6
7from music_assistant.mass import MusicAssistant
8
9
10async def test_get_provider_icon_by_domain(mass_minimal: MusicAssistant) -> None:
11 """Test that a stored icon is returned by provider domain."""
12 mass_minimal._provider_icons["dummy"] = {
13 ProviderIconVariant.DEFAULT: ("image/svg+xml", b"<svg/>"),
14 }
15 assert mass_minimal.get_provider_icon("dummy") == ("image/svg+xml", b"<svg/>")
16
17
18async def test_get_provider_icon_missing_variant(mass_minimal: MusicAssistant) -> None:
19 """Test that a missing icon variant returns None."""
20 mass_minimal._provider_icons["dummy"] = {
21 ProviderIconVariant.DEFAULT: ("image/svg+xml", b"<svg/>"),
22 }
23 assert mass_minimal.get_provider_icon("dummy", ProviderIconVariant.DARK) is None
24
25
26async def test_get_provider_icon_unknown_provider(mass_minimal: MusicAssistant) -> None:
27 """Test that an unknown provider returns None."""
28 assert mass_minimal.get_provider_icon("does_not_exist") is None
29
30
31async def test_provider_icon_data_uri(mass_minimal: MusicAssistant) -> None:
32 """Test that a stored icon is returned as a base64 data URI."""
33 mass_minimal._provider_icons["dummy"] = {
34 ProviderIconVariant.DEFAULT: ("image/svg+xml", b"<svg/>"),
35 }
36 expected = "data:image/svg+xml;base64," + base64.b64encode(b"<svg/>").decode()
37 assert mass_minimal.get_provider_icon_data("dummy") == expected
38
39
40async def test_provider_icon_data_uri_missing(mass_minimal: MusicAssistant) -> None:
41 """Test that a missing icon variant returns None as a data URI."""
42 assert mass_minimal.get_provider_icon_data("dummy", ProviderIconVariant.DARK) is None
43