diff --git a/tests/dummy_backend.py b/tests/dummy_backend.py index babaf0de..f2867b7b 100644 --- a/tests/dummy_backend.py +++ b/tests/dummy_backend.py @@ -100,6 +100,10 @@ class DummyPlaylistsProvider(backend.PlaylistsProvider): super(DummyPlaylistsProvider, self).__init__(backend) self._playlists = [] + def set_playlists(self, playlists): + """For tests using the dummy provider through an actor proxy.""" + self._playlists = playlists + def as_list(self): return [ Ref.playlist(uri=pl.uri, name=pl.name) for pl in self._playlists] @@ -111,13 +115,13 @@ class DummyPlaylistsProvider(backend.PlaylistsProvider): return [ Ref.track(uri=t.uri, name=t.name) for t in playlist.tracks] - @property - def playlists(self): - return copy.copy(self._playlists) + def lookup(self, uri): + for playlist in self._playlists: + if playlist.uri == uri: + return playlist - @playlists.setter - def playlists(self, playlists): - self._playlists = playlists + def refresh(self): + pass def create(self, name): playlist = Playlist(name=name, uri='dummy:%s' % name) @@ -129,14 +133,6 @@ class DummyPlaylistsProvider(backend.PlaylistsProvider): if playlist: self._playlists.remove(playlist) - def lookup(self, uri): - for playlist in self._playlists: - if playlist.uri == uri: - return playlist - - def refresh(self): - pass - def save(self, playlist): old_playlist = self.lookup(playlist.uri) diff --git a/tests/mpd/protocol/test_music_db.py b/tests/mpd/protocol/test_music_db.py index 613467ed..37cbfce0 100644 --- a/tests/mpd/protocol/test_music_db.py +++ b/tests/mpd/protocol/test_music_db.py @@ -277,8 +277,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase): def test_lsinfo_without_path_returns_same_as_for_root(self): last_modified = 1390942873222 - self.backend.playlists.playlists = [ - Playlist(name='a', uri='dummy:/a', last_modified=last_modified)] + self.backend.playlists.set_playlists([ + Playlist(name='a', uri='dummy:/a', last_modified=last_modified)]) response1 = self.send_request('lsinfo') response2 = self.send_request('lsinfo "/"') @@ -286,8 +286,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase): def test_lsinfo_with_empty_path_returns_same_as_for_root(self): last_modified = 1390942873222 - self.backend.playlists.playlists = [ - Playlist(name='a', uri='dummy:/a', last_modified=last_modified)] + self.backend.playlists.set_playlists([ + Playlist(name='a', uri='dummy:/a', last_modified=last_modified)]) response1 = self.send_request('lsinfo ""') response2 = self.send_request('lsinfo "/"') @@ -295,8 +295,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase): def test_lsinfo_for_root_includes_playlists(self): last_modified = 1390942873222 - self.backend.playlists.playlists = [ - Playlist(name='a', uri='dummy:/a', last_modified=last_modified)] + self.backend.playlists.set_playlists([ + Playlist(name='a', uri='dummy:/a', last_modified=last_modified)]) self.send_request('lsinfo "/"') self.assertInResponse('playlist: a') @@ -384,8 +384,8 @@ class MusicDatabaseHandlerTest(protocol.BaseTestCase): self.backend.library.dummy_browse_result = { 'dummy:/': [Ref.track(uri='dummy:/a', name='a'), Ref.directory(uri='dummy:/foo', name='foo')]} - self.backend.playlists.playlists = [ - Playlist(name='a', uri='dummy:/a', last_modified=last_modified)] + self.backend.playlists.set_playlists([ + Playlist(name='a', uri='dummy:/a', last_modified=last_modified)]) response = self.send_request('lsinfo "/"') self.assertLess(response.index('directory: dummy'), diff --git a/tests/mpd/protocol/test_stored_playlists.py b/tests/mpd/protocol/test_stored_playlists.py index a9190aa1..39d0d1b0 100644 --- a/tests/mpd/protocol/test_stored_playlists.py +++ b/tests/mpd/protocol/test_stored_playlists.py @@ -7,18 +7,18 @@ from tests.mpd import protocol class PlaylistsHandlerTest(protocol.BaseTestCase): def test_listplaylist(self): - self.backend.playlists.playlists = [ + self.backend.playlists.set_playlists([ Playlist( - name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])] + name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])]) self.send_request('listplaylist "name"') self.assertInResponse('file: dummy:a') self.assertInResponse('OK') def test_listplaylist_without_quotes(self): - self.backend.playlists.playlists = [ + self.backend.playlists.set_playlists([ Playlist( - name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])] + name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])]) self.send_request('listplaylist name') self.assertInResponse('file: dummy:a') @@ -31,16 +31,16 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): def test_listplaylist_duplicate(self): playlist1 = Playlist(name='a', uri='dummy:a1', tracks=[Track(uri='b')]) playlist2 = Playlist(name='a', uri='dummy:a2', tracks=[Track(uri='c')]) - self.backend.playlists.playlists = [playlist1, playlist2] + self.backend.playlists.set_playlists([playlist1, playlist2]) self.send_request('listplaylist "a [2]"') self.assertInResponse('file: c') self.assertInResponse('OK') def test_listplaylistinfo(self): - self.backend.playlists.playlists = [ + self.backend.playlists.set_playlists([ Playlist( - name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])] + name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])]) self.send_request('listplaylistinfo "name"') self.assertInResponse('file: dummy:a') @@ -49,9 +49,9 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): self.assertInResponse('OK') def test_listplaylistinfo_without_quotes(self): - self.backend.playlists.playlists = [ + self.backend.playlists.set_playlists([ Playlist( - name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])] + name='name', uri='dummy:name', tracks=[Track(uri='dummy:a')])]) self.send_request('listplaylistinfo name') self.assertInResponse('file: dummy:a') @@ -67,7 +67,7 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): def test_listplaylistinfo_duplicate(self): playlist1 = Playlist(name='a', uri='dummy:a1', tracks=[Track(uri='b')]) playlist2 = Playlist(name='a', uri='dummy:a2', tracks=[Track(uri='c')]) - self.backend.playlists.playlists = [playlist1, playlist2] + self.backend.playlists.set_playlists([playlist1, playlist2]) self.send_request('listplaylistinfo "a [2]"') self.assertInResponse('file: c') @@ -77,8 +77,8 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): def test_listplaylists(self): last_modified = 1390942873222 - self.backend.playlists.playlists = [ - Playlist(name='a', uri='dummy:a', last_modified=last_modified)] + self.backend.playlists.set_playlists([ + Playlist(name='a', uri='dummy:a', last_modified=last_modified)]) self.send_request('listplaylists') self.assertInResponse('playlist: a') @@ -89,7 +89,7 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): def test_listplaylists_duplicate(self): playlist1 = Playlist(name='a', uri='dummy:a1') playlist2 = Playlist(name='a', uri='dummy:a2') - self.backend.playlists.playlists = [playlist1, playlist2] + self.backend.playlists.set_playlists([playlist1, playlist2]) self.send_request('listplaylists') self.assertInResponse('playlist: a') @@ -98,32 +98,32 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): def test_listplaylists_ignores_playlists_without_name(self): last_modified = 1390942873222 - self.backend.playlists.playlists = [ - Playlist(name='', uri='dummy:', last_modified=last_modified)] + self.backend.playlists.set_playlists([ + Playlist(name='', uri='dummy:', last_modified=last_modified)]) self.send_request('listplaylists') self.assertNotInResponse('playlist: ') self.assertInResponse('OK') def test_listplaylists_replaces_newline_with_space(self): - self.backend.playlists.playlists = [ - Playlist(name='a\n', uri='dummy:')] + self.backend.playlists.set_playlists([ + Playlist(name='a\n', uri='dummy:')]) self.send_request('listplaylists') self.assertInResponse('playlist: a ') self.assertNotInResponse('playlist: a\n') self.assertInResponse('OK') def test_listplaylists_replaces_carriage_return_with_space(self): - self.backend.playlists.playlists = [ - Playlist(name='a\r', uri='dummy:')] + self.backend.playlists.set_playlists([ + Playlist(name='a\r', uri='dummy:')]) self.send_request('listplaylists') self.assertInResponse('playlist: a ') self.assertNotInResponse('playlist: a\r') self.assertInResponse('OK') def test_listplaylists_replaces_forward_slash_with_pipe(self): - self.backend.playlists.playlists = [ - Playlist(name='a/b', uri='dummy:')] + self.backend.playlists.set_playlists([ + Playlist(name='a/b', uri='dummy:')]) self.send_request('listplaylists') self.assertInResponse('playlist: a|b') self.assertNotInResponse('playlist: a/b') @@ -132,9 +132,9 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): def test_load_appends_to_tracklist(self): self.core.tracklist.add([Track(uri='a'), Track(uri='b')]) self.assertEqual(len(self.core.tracklist.tracks.get()), 2) - self.backend.playlists.playlists = [ + self.backend.playlists.set_playlists([ Playlist(name='A-list', uri='dummy:A-list', tracks=[ - Track(uri='c'), Track(uri='d'), Track(uri='e')])] + Track(uri='c'), Track(uri='d'), Track(uri='e')])]) self.send_request('load "A-list"') @@ -150,9 +150,9 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): def test_load_with_range_loads_part_of_playlist(self): self.core.tracklist.add([Track(uri='a'), Track(uri='b')]) self.assertEqual(len(self.core.tracklist.tracks.get()), 2) - self.backend.playlists.playlists = [ + self.backend.playlists.set_playlists([ Playlist(name='A-list', uri='dummy:A-list', tracks=[ - Track(uri='c'), Track(uri='d'), Track(uri='e')])] + Track(uri='c'), Track(uri='d'), Track(uri='e')])]) self.send_request('load "A-list" "1:2"') @@ -166,9 +166,9 @@ class PlaylistsHandlerTest(protocol.BaseTestCase): def test_load_with_range_without_end_loads_rest_of_playlist(self): self.core.tracklist.add([Track(uri='a'), Track(uri='b')]) self.assertEqual(len(self.core.tracklist.tracks.get()), 2) - self.backend.playlists.playlists = [ + self.backend.playlists.set_playlists([ Playlist(name='A-list', uri='dummy:A-list', tracks=[ - Track(uri='c'), Track(uri='d'), Track(uri='e')])] + Track(uri='c'), Track(uri='d'), Track(uri='e')])]) self.send_request('load "A-list" "1:"')