mpd: Add integration test for core events and idle
This commit is contained in:
parent
49b0580c39
commit
7d4da4ac8c
@ -24,6 +24,9 @@ class MpdFrontend(pykka.ThreadingActor, CoreListener):
|
|||||||
self.zeroconf_name = config['mpd']['zeroconf']
|
self.zeroconf_name = config['mpd']['zeroconf']
|
||||||
self.zeroconf_service = None
|
self.zeroconf_service = None
|
||||||
|
|
||||||
|
self._setup_server(config, core)
|
||||||
|
|
||||||
|
def _setup_server(self, config, core):
|
||||||
try:
|
try:
|
||||||
network.Server(
|
network.Server(
|
||||||
self.hostname, self.port,
|
self.hostname, self.port,
|
||||||
|
|||||||
44
tests/mpd/test_actor.py
Normal file
44
tests/mpd/test_actor.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
|
||||||
|
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'], None),
|
||||||
|
(['playlist_changed', 'playlist'], 'stored_playlist'),
|
||||||
|
(['playlist_deleted', 'uri'], 'stored_playlist'),
|
||||||
|
(['options_changed'], 'options'),
|
||||||
|
(['volume_changed', 'volume'], 'mixer'),
|
||||||
|
(['mute_changed', 'mute'], 'output'),
|
||||||
|
(['seeked', 'time_position'], None),
|
||||||
|
(['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)
|
||||||
Loading…
Reference in New Issue
Block a user