music-assistant-server

1.6 KBPY
test_player.py
1.6 KB53 lines • python
1"""Unit tests for AirPlay player."""
2
3from unittest.mock import MagicMock
4
5import pytest
6
7from music_assistant.providers.airplay.player import AirPlayPlayer
8
9
10@pytest.mark.parametrize(
11    ("aiplay_properties", "raop_properties", "expected"),
12    [
13        ({b"flags": b"0x200"}, None, True),
14        ({b"sf": b"0x201"}, None, True),
15        ({b"flags": b"0x4"}, None, False),
16        ({b"sf": b"0x8"}, None, True),
17        ({b"flags": b"0x9"}, None, True),
18        (None, {b"flags": "0x200"}, True),
19        (None, {b"sf": b"0x201"}, True),
20        (None, {b"flags": b"0x4"}, False),
21        (None, {b"sf": b"0x8"}, True),
22        (None, {b"flags": b"0x9"}, True),
23        ({}, {}, False),
24    ],
25)
26def test_requires_pairing(
27    aiplay_properties: dict[bytes, bytes] | None,
28    raop_properties: dict[bytes, bytes] | None,
29    expected: bool,
30) -> None:
31    """Test the _requires_pairing method of AirPlayPlayer."""
32    if aiplay_properties is not None:
33        aiplay_discovery_info = MagicMock()
34        aiplay_discovery_info.properties = aiplay_properties
35    else:
36        aiplay_discovery_info = None
37    if raop_properties is not None:
38        raop_discovery_info = MagicMock()
39        raop_discovery_info.properties = raop_properties
40    else:
41        raop_discovery_info = None
42    player = AirPlayPlayer(
43        provider=MagicMock(),
44        player_id="test_player",
45        display_name="Test Player",
46        address="127.0.0.1",
47        manufacturer="Test Manufacturer",
48        model="Test Model",
49        raop_discovery_info=raop_discovery_info,
50        airplay_discovery_info=aiplay_discovery_info,
51    )
52    assert player._requires_pairing() == expected
53