/
/
/
1"""Tests for the Squeezelite player."""
2
3from __future__ import annotations
4
5import pytest
6
7from music_assistant.providers.squeezelite.player import is_protocol_only_device
8
9
10@pytest.mark.parametrize(
11 ("device_model", "expected"),
12 [
13 # generic squeezelite (software) players are full players
14 ("SqueezeLite", False),
15 ("SqueezeLite-HA-Addon", False),
16 ("SqueezePlay", False),
17 ("SqueezeESP32", False),
18 # hardware players are full players
19 ("Squeezebox Boom", False),
20 ("Transporter", False),
21 # unknown/absent model info defaults to a full player
22 ("", False),
23 ("Unknown", False),
24 # WiiM/LinkPlay devices use squeezelite as a secondary protocol
25 ("WiiM Player", True),
26 ("wiim mini", True),
27 # LMS bridge tools represent devices that are already players themselves
28 ("RaopBridge", True),
29 ("CastBridge", True),
30 ("UPnPBridge", True),
31 ],
32)
33def test_is_protocol_only_device(device_model: str, expected: bool) -> None:
34 """Test protocol-only device detection based on the reported device model."""
35 assert is_protocol_only_device(device_model) is expected
36