1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
from unittest import mock
import pytest
from mopidy_mpd import actor
# NOTE: Should be kept in sync with all events from mopidy.core.listener
@pytest.mark.parametrize(
"event,expected",
[
(["track_playback_paused", "tl_track", "time_position"], None),
(["track_playback_resumed", "tl_track", "time_position"], None),
(["track_playback_started", "tl_track"], None),
(["track_playback_ended", "tl_track", "time_position"], None),
(["playback_state_changed", "old_state", "new_state"], "player"),
(["tracklist_changed"], "playlist"),
(["playlists_loaded"], "stored_playlist"),
(["playlist_changed", "playlist"], "stored_playlist"),
(["playlist_deleted", "uri"], "stored_playlist"),
(["options_changed"], "options"),
(["volume_changed", "volume"], "mixer"),
(["mute_changed", "mute"], "output"),
(["seeked", "time_position"], "player"),
(["stream_title_changed", "title"], "playlist"),
],
)
def test_idle_hooked_up_correctly(event, expected):
config = {
"mpd": {
"hostname": "foobar",
"port": 1234,
"zeroconf": None,
"max_connections": None,
"connection_timeout": None,
}
}
with mock.patch.object(actor.MpdFrontend, "_setup_server"):
frontend = actor.MpdFrontend(core=mock.Mock(), config=config)
with mock.patch("mopidy.listener.send") as send_mock:
frontend.on_event(event[0], **{e: None for e in event[1:]})
if expected is None:
assert not send_mock.call_args
else:
send_mock.assert_called_once_with(mock.ANY, expected)
|