diff --git a/mopidy/core/playlists.py b/mopidy/core/playlists.py index 63797477..878b2b1a 100644 --- a/mopidy/core/playlists.py +++ b/mopidy/core/playlists.py @@ -5,6 +5,8 @@ import urlparse import pykka +from . import listener + class PlaylistsController(object): pykka_traversable = True @@ -47,7 +49,9 @@ class PlaylistsController(object): backend = self.backends.by_uri_scheme[uri_scheme] else: backend = self.backends.with_playlists[0] - return backend.playlists.create(name).get() + playlist = backend.playlists.create(name).get() + listener.CoreListener.send('playlist_changed', playlist=playlist) + return playlist def delete(self, uri): """ @@ -162,4 +166,6 @@ class PlaylistsController(object): backend = self.backends.with_playlists_by_uri_scheme.get( uri_scheme, None) if backend: - return backend.playlists.save(playlist).get() + playlist = backend.playlists.save(playlist).get() + listener.CoreListener.send('playlist_changed', playlist=playlist) + return playlist diff --git a/tests/core/events_test.py b/tests/core/events_test.py index 2612187c..be991e66 100644 --- a/tests/core/events_test.py +++ b/tests/core/events_test.py @@ -90,3 +90,26 @@ class BackendEventsTest(unittest.TestCase): send.reset_mock() self.core.tracklist.shuffle().get() self.assertEqual(send.call_args[0][0], 'tracklist_changed') + + @unittest.SkipTest + def test_playlists_load_sends_playlists_loaded_event(self, send): + # TODO Figure out what type of event and how to send events when + # the backend finished loading playlists + pass + + def test_playlists_create_sends_playlist_changed_event(self, send): + send.reset_mock() + self.core.playlists.create('foo').get() + self.assertEqual(send.call_args[0][0], 'playlist_changed') + + @unittest.SkipTest + def test_playlists_delete_sends_playlist_deleted_event(self, send): + # TODO We should probably add a playlist_deleted event + pass + + def test_playlists_save_sends_playlist_changed_event(self, send): + playlist = self.core.playlists.create('foo').get() + send.reset_mock() + playlist = playlist.copy(name='bar') + self.core.playlists.save(playlist).get() + self.assertEqual(send.call_args[0][0], 'playlist_changed')