diff --git a/mopidy/backends/local/playlists.py b/mopidy/backends/local/playlists.py index 05873a98..ea45bcbb 100644 --- a/mopidy/backends/local/playlists.py +++ b/mopidy/backends/local/playlists.py @@ -6,7 +6,7 @@ import os import shutil from mopidy import settings -from mopidy.backends import base +from mopidy.backends import base, listener from mopidy.models import Playlist from mopidy.utils import formatting, path @@ -63,6 +63,7 @@ class LocalPlaylistsProvider(base.BasePlaylistsProvider): playlists.append(playlist) self.playlists = playlists + listener.BackendListener.send('playlists_loaded') def save(self, playlist): assert playlist.uri, 'Cannot save playlist without URI' diff --git a/tests/backends/base/events.py b/tests/backends/base/events.py new file mode 100644 index 00000000..0a2e6722 --- /dev/null +++ b/tests/backends/base/events.py @@ -0,0 +1,23 @@ +from __future__ import unicode_literals + +import mock +import pykka + +from mopidy import core, audio +from mopidy.backends import listener + + +@mock.patch.object(listener.BackendListener, 'send') +class BackendEventsTest(object): + def setUp(self): + self.audio = mock.Mock(spec=audio.Audio) + self.backend = self.backend_class.start(audio=audio).proxy() + self.core = core.Core.start(backends=[self.backend]).proxy() + + def tearDown(self): + pykka.ActorRegistry.stop_all() + + def test_playlists_refresh_sends_playlists_loaded_event(self, send): + send.reset_mock() + self.core.playlists.refresh().get() + self.assertEqual(send.call_args[0][0], 'playlists_loaded') diff --git a/tests/backends/local/events_test.py b/tests/backends/local/events_test.py new file mode 100644 index 00000000..ba61f97a --- /dev/null +++ b/tests/backends/local/events_test.py @@ -0,0 +1,8 @@ +from mopidy.backends.local import LocalBackend + +from tests import unittest +from tests.backends.base import events + + +class LocalBackendEventsTest(events.BackendEventsTest, unittest.TestCase): + backend_class = LocalBackend