diff --git a/mopidy/frontends/mpd/protocol/current_playlist.py b/mopidy/frontends/mpd/protocol/current_playlist.py index 13635a33..8ef5e026 100644 --- a/mopidy/frontends/mpd/protocol/current_playlist.py +++ b/mopidy/frontends/mpd/protocol/current_playlist.py @@ -19,9 +19,9 @@ def add(frontend, uri): """ if not uri: return - for handler_prefix in frontend.backend.uri_handlers: + for handler_prefix in frontend.backend.uri_handlers.get(): if uri.startswith(handler_prefix): - track = frontend.backend.library.lookup(uri) + track = frontend.backend.library.lookup(uri).get() if track is not None: frontend.backend.current_playlist.add(track) return @@ -51,13 +51,14 @@ def addid(frontend, uri, songpos=None): raise MpdNoExistError(u'No such song', command=u'addid') if songpos is not None: songpos = int(songpos) - track = frontend.backend.library.lookup(uri) + track = frontend.backend.library.lookup(uri).get() if track is None: raise MpdNoExistError(u'No such song', command=u'addid') - if songpos and songpos > len(frontend.backend.current_playlist.tracks): + if songpos and songpos > len( + frontend.backend.current_playlist.tracks.get()): raise MpdArgError(u'Bad song index', command=u'addid') cp_track = frontend.backend.current_playlist.add(track, - at_position=songpos) + at_position=songpos).get() return ('Id', cp_track[0]) @handle_pattern(r'^delete "(?P\d+):(?P\d+)*"$') @@ -73,8 +74,8 @@ def delete_range(frontend, start, end=None): if end is not None: end = int(end) else: - end = len(frontend.backend.current_playlist.tracks) - cp_tracks = frontend.backend.current_playlist.cp_tracks[start:end] + end = len(frontend.backend.current_playlist.tracks.get()) + cp_tracks = frontend.backend.current_playlist.cp_tracks.get()[start:end] if not cp_tracks: raise MpdArgError(u'Bad song index', command=u'delete') for (cpid, _) in cp_tracks: @@ -85,7 +86,7 @@ def delete_songpos(frontend, songpos): """See :meth:`delete_range`""" try: songpos = int(songpos) - (cpid, _) = frontend.backend.current_playlist.cp_tracks[songpos] + (cpid, _) = frontend.backend.current_playlist.cp_tracks.get()[songpos] frontend.backend.current_playlist.remove(cpid=cpid) except IndexError: raise MpdArgError(u'Bad song index', command=u'delete') @@ -101,9 +102,9 @@ def deleteid(frontend, cpid): """ try: cpid = int(cpid) - if frontend.backend.playback.current_cpid == cpid: + if frontend.backend.playback.current_cpid.get() == cpid: frontend.backend.playback.next() - return frontend.backend.current_playlist.remove(cpid=cpid) + return frontend.backend.current_playlist.remove(cpid=cpid).get() except LookupError: raise MpdNoExistError(u'No such song', command=u'deleteid') @@ -129,7 +130,7 @@ def move_range(frontend, start, to, end=None): ``TO`` in the playlist. """ if end is None: - end = len(frontend.backend.current_playlist.tracks) + end = len(frontend.backend.current_playlist.tracks.get()) start = int(start) end = int(end) to = int(to) @@ -155,8 +156,9 @@ def moveid(frontend, cpid, to): """ cpid = int(cpid) to = int(to) - cp_track = frontend.backend.current_playlist.get(cpid=cpid) - position = frontend.backend.current_playlist.cp_tracks.index(cp_track) + cp_track = frontend.backend.current_playlist.get(cpid=cpid).get() + position = frontend.backend.current_playlist.cp_tracks.get().index( + cp_track) frontend.backend.current_playlist.move(position, position + 1, to) @handle_pattern(r'^playlist$') @@ -190,9 +192,9 @@ def playlistfind(frontend, tag, needle): """ if tag == 'filename': try: - cp_track = frontend.backend.current_playlist.get(uri=needle) + cp_track = frontend.backend.current_playlist.get(uri=needle).get() (cpid, track) = cp_track - position = frontend.backend.current_playlist.cp_tracks.index( + position = frontend.backend.current_playlist.cp_tracks.get().index( cp_track) return track.mpd_format(cpid=cpid, position=position) except LookupError: @@ -212,16 +214,17 @@ def playlistid(frontend, cpid=None): if cpid is not None: try: cpid = int(cpid) - cp_track = frontend.backend.current_playlist.get(cpid=cpid) - position = frontend.backend.current_playlist.cp_tracks.index( + cp_track = frontend.backend.current_playlist.get(cpid=cpid).get() + position = frontend.backend.current_playlist.cp_tracks.get().index( cp_track) return cp_track[1].mpd_format(position=position, cpid=cpid) except LookupError: raise MpdNoExistError(u'No such song', command=u'playlistid') else: - cpids = [ct[0] for ct in frontend.backend.current_playlist.cp_tracks] - return tracks_to_mpd_format(frontend.backend.current_playlist.tracks, - cpids=cpids) + cpids = [ct[0] for ct in + frontend.backend.current_playlist.cp_tracks.get()] + return tracks_to_mpd_format( + frontend.backend.current_playlist.tracks.get(), cpids=cpids) @handle_pattern(r'^playlistinfo$') @handle_pattern(r'^playlistinfo "(?P-?\d+)"$') @@ -251,21 +254,26 @@ def playlistinfo(frontend, songpos=None, end = songpos + 1 if start == -1: end = None - cpids = [ct[0] for ct in frontend.backend.current_playlist.cp_tracks] - return tracks_to_mpd_format(frontend.backend.current_playlist.tracks, + cpids = [ct[0] for ct in + frontend.backend.current_playlist.cp_tracks.get()] + return tracks_to_mpd_format( + frontend.backend.current_playlist.tracks.get(), start, end, cpids=cpids) else: if start is None: start = 0 start = int(start) - if not (0 <= start <= len(frontend.backend.current_playlist.tracks)): + if not (0 <= start <= len( + frontend.backend.current_playlist.tracks.get())): raise MpdArgError(u'Bad song index', command=u'playlistinfo') if end is not None: end = int(end) - if end > len(frontend.backend.current_playlist.tracks): + if end > len(frontend.backend.current_playlist.tracks.get()): end = None - cpids = [ct[0] for ct in frontend.backend.current_playlist.cp_tracks] - return tracks_to_mpd_format(frontend.backend.current_playlist.tracks, + cpids = [ct[0] for ct in + frontend.backend.current_playlist.cp_tracks.get()] + return tracks_to_mpd_format( + frontend.backend.current_playlist.tracks.get(), start, end, cpids=cpids) @handle_pattern(r'^playlistsearch "(?P[^"]+)" "(?P[^"]+)"$') @@ -305,9 +313,10 @@ def plchanges(frontend, version): """ # XXX Naive implementation that returns all tracks as changed if int(version) < frontend.backend.current_playlist.version: - cpids = [ct[0] for ct in frontend.backend.current_playlist.cp_tracks] - return tracks_to_mpd_format(frontend.backend.current_playlist.tracks, - cpids=cpids) + cpids = [ct[0] for ct in + frontend.backend.current_playlist.cp_tracks.get()] + return tracks_to_mpd_format( + frontend.backend.current_playlist.tracks.get(), cpids=cpids) @handle_pattern(r'^plchangesposid "(?P\d+)"$') def plchangesposid(frontend, version): @@ -324,10 +333,10 @@ def plchangesposid(frontend, version): ``playlistlength`` returned by status command. """ # XXX Naive implementation that returns all tracks as changed - if int(version) != frontend.backend.current_playlist.version: + if int(version) != frontend.backend.current_playlist.version.get(): result = [] for (position, (cpid, _)) in enumerate( - frontend.backend.current_playlist.cp_tracks): + frontend.backend.current_playlist.cp_tracks.get()): result.append((u'cpos', position)) result.append((u'Id', cpid)) return result @@ -360,7 +369,7 @@ def swap(frontend, songpos1, songpos2): """ songpos1 = int(songpos1) songpos2 = int(songpos2) - tracks = frontend.backend.current_playlist.tracks + tracks = frontend.backend.current_playlist.tracks.get() song1 = tracks[songpos1] song2 = tracks[songpos2] del tracks[songpos1] @@ -381,8 +390,9 @@ def swapid(frontend, cpid1, cpid2): """ cpid1 = int(cpid1) cpid2 = int(cpid2) - cp_track1 = frontend.backend.current_playlist.get(cpid=cpid1) - cp_track2 = frontend.backend.current_playlist.get(cpid=cpid2) - position1 = frontend.backend.current_playlist.cp_tracks.index(cp_track1) - position2 = frontend.backend.current_playlist.cp_tracks.index(cp_track2) + cp_track1 = frontend.backend.current_playlist.get(cpid=cpid1).get() + cp_track2 = frontend.backend.current_playlist.get(cpid=cpid2).get() + cp_tracks = frontend.backend.current_playlist.cp_tracks.get() + position1 = cp_tracks.index(cp_track1) + position2 = cp_tracks.index(cp_track2) swap(frontend, position1, position2) diff --git a/tests/frontends/mpd/current_playlist_test.py b/tests/frontends/mpd/current_playlist_test.py index a4179637..8e189dee 100644 --- a/tests/frontends/mpd/current_playlist_test.py +++ b/tests/frontends/mpd/current_playlist_test.py @@ -2,31 +2,28 @@ import unittest from mopidy.backends.dummy import DummyBackend from mopidy.frontends.mpd import dispatcher -from mopidy.mixers.dummy import DummyMixer from mopidy.models import Track class CurrentPlaylistHandlerTest(unittest.TestCase): def setUp(self): - self.b = DummyBackend(mixer_class=DummyMixer) - self.h = dispatcher.MpdDispatcher(backend=self.b) + self.b = DummyBackend.start().proxy() + self.h = dispatcher.MpdDispatcher() + + def tearDown(self): + self.b.stop().get() def test_add(self): needle = Track(uri='dummy://foo') - self.b.library.provider._library = [Track(), Track(), needle, Track()] + self.b.library.provider.dummy_library = [ + Track(), Track(), needle, Track()] self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'add "dummy://foo"') - self.assertEqual(len(self.b.current_playlist.tracks), 6) - self.assertEqual(self.b.current_playlist.tracks[5], needle) self.assertEqual(len(result), 1) - self.assert_(u'OK' in result) - - def test_add_with_uri_not_found_in_library_should_not_call_lookup(self): - self.b.library.lookup = lambda uri: self.fail("Shouldn't run") - result = self.h.handle_request(u'add "foo"') - self.assertEqual(result[0], - u'ACK [50@0] {add} directory or file not found') + self.assertEqual(result[0], u'OK') + self.assertEqual(len(self.b.current_playlist.tracks.get()), 6) + self.assertEqual(self.b.current_playlist.tracks.get()[5], needle) def test_add_with_uri_not_found_in_library_should_ack(self): result = self.h.handle_request(u'add "dummy://foo"') @@ -40,41 +37,43 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): def test_addid_without_songpos(self): needle = Track(uri='dummy://foo') - self.b.library.provider._library = [Track(), Track(), needle, Track()] + self.b.library.provider.dummy_library = [ + Track(), Track(), needle, Track()] self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'addid "dummy://foo"') - self.assertEqual(len(self.b.current_playlist.tracks), 6) - self.assertEqual(self.b.current_playlist.tracks[5], needle) - self.assert_(u'Id: %d' % self.b.current_playlist.cp_tracks[5][0] + self.assertEqual(len(self.b.current_playlist.tracks.get()), 6) + self.assertEqual(self.b.current_playlist.tracks.get()[5], needle) + self.assert_(u'Id: %d' % self.b.current_playlist.cp_tracks.get()[5][0] in result) self.assert_(u'OK' in result) - def test_addid_with_empty_uri_does_not_lookup_and_acks(self): - self.b.library.lookup = lambda uri: self.fail("Shouldn't run") + def test_addid_with_empty_uri_acks(self): result = self.h.handle_request(u'addid ""') self.assertEqual(result[0], u'ACK [50@0] {addid} No such song') def test_addid_with_songpos(self): needle = Track(uri='dummy://foo') - self.b.library.provider._library = [Track(), Track(), needle, Track()] + self.b.library.provider.dummy_library = [ + Track(), Track(), needle, Track()] self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'addid "dummy://foo" "3"') - self.assertEqual(len(self.b.current_playlist.tracks), 6) - self.assertEqual(self.b.current_playlist.tracks[3], needle) - self.assert_(u'Id: %d' % self.b.current_playlist.cp_tracks[3][0] + self.assertEqual(len(self.b.current_playlist.tracks.get()), 6) + self.assertEqual(self.b.current_playlist.tracks.get()[3], needle) + self.assert_(u'Id: %d' % self.b.current_playlist.cp_tracks.get()[3][0] in result) self.assert_(u'OK' in result) def test_addid_with_songpos_out_of_bounds_should_ack(self): needle = Track(uri='dummy://foo') - self.b.library.provider._library = [Track(), Track(), needle, Track()] + self.b.library.provider.dummy_library = [ + Track(), Track(), needle, Track()] self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'addid "dummy://foo" "6"') self.assertEqual(result[0], u'ACK [2@0] {addid} Bad song index') @@ -85,65 +84,65 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): def test_clear(self): self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'clear') - self.assertEqual(len(self.b.current_playlist.tracks), 0) - self.assertEqual(self.b.playback.current_track, None) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 0) + self.assertEqual(self.b.playback.current_track.get(), None) self.assert_(u'OK' in result) def test_delete_songpos(self): self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'delete "%d"' % - self.b.current_playlist.cp_tracks[2][0]) - self.assertEqual(len(self.b.current_playlist.tracks), 4) + self.b.current_playlist.cp_tracks.get()[2][0]) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 4) self.assert_(u'OK' in result) def test_delete_songpos_out_of_bounds(self): self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'delete "5"') - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) self.assertEqual(result[0], u'ACK [2@0] {delete} Bad song index') def test_delete_open_range(self): self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'delete "1:"') - self.assertEqual(len(self.b.current_playlist.tracks), 1) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 1) self.assert_(u'OK' in result) def test_delete_closed_range(self): self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'delete "1:3"') - self.assertEqual(len(self.b.current_playlist.tracks), 3) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 3) self.assert_(u'OK' in result) def test_delete_range_out_of_bounds(self): self.b.current_playlist.append( [Track(), Track(), Track(), Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) result = self.h.handle_request(u'delete "5:7"') - self.assertEqual(len(self.b.current_playlist.tracks), 5) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 5) self.assertEqual(result[0], u'ACK [2@0] {delete} Bad song index') def test_deleteid(self): self.b.current_playlist.append([Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 2) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 2) result = self.h.handle_request(u'deleteid "1"') - self.assertEqual(len(self.b.current_playlist.tracks), 1) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 1) self.assert_(u'OK' in result) def test_deleteid_does_not_exist(self): self.b.current_playlist.append([Track(), Track()]) - self.assertEqual(len(self.b.current_playlist.tracks), 2) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 2) result = self.h.handle_request(u'deleteid "12345"') - self.assertEqual(len(self.b.current_playlist.tracks), 2) + self.assertEqual(len(self.b.current_playlist.tracks.get()), 2) self.assertEqual(result[0], u'ACK [50@0] {deleteid} No such song') def test_move_songpos(self): @@ -152,12 +151,13 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='d'), Track(name='e'), Track(name='f'), ]) result = self.h.handle_request(u'move "1" "0"') - self.assertEqual(self.b.current_playlist.tracks[0].name, 'b') - self.assertEqual(self.b.current_playlist.tracks[1].name, 'a') - self.assertEqual(self.b.current_playlist.tracks[2].name, 'c') - self.assertEqual(self.b.current_playlist.tracks[3].name, 'd') - self.assertEqual(self.b.current_playlist.tracks[4].name, 'e') - self.assertEqual(self.b.current_playlist.tracks[5].name, 'f') + tracks = self.b.current_playlist.tracks.get() + self.assertEqual(tracks[0].name, 'b') + self.assertEqual(tracks[1].name, 'a') + self.assertEqual(tracks[2].name, 'c') + self.assertEqual(tracks[3].name, 'd') + self.assertEqual(tracks[4].name, 'e') + self.assertEqual(tracks[5].name, 'f') self.assert_(u'OK' in result) def test_move_open_range(self): @@ -166,12 +166,13 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='d'), Track(name='e'), Track(name='f'), ]) result = self.h.handle_request(u'move "2:" "0"') - self.assertEqual(self.b.current_playlist.tracks[0].name, 'c') - self.assertEqual(self.b.current_playlist.tracks[1].name, 'd') - self.assertEqual(self.b.current_playlist.tracks[2].name, 'e') - self.assertEqual(self.b.current_playlist.tracks[3].name, 'f') - self.assertEqual(self.b.current_playlist.tracks[4].name, 'a') - self.assertEqual(self.b.current_playlist.tracks[5].name, 'b') + tracks = self.b.current_playlist.tracks.get() + self.assertEqual(tracks[0].name, 'c') + self.assertEqual(tracks[1].name, 'd') + self.assertEqual(tracks[2].name, 'e') + self.assertEqual(tracks[3].name, 'f') + self.assertEqual(tracks[4].name, 'a') + self.assertEqual(tracks[5].name, 'b') self.assert_(u'OK' in result) def test_move_closed_range(self): @@ -180,12 +181,13 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='d'), Track(name='e'), Track(name='f'), ]) result = self.h.handle_request(u'move "1:3" "0"') - self.assertEqual(self.b.current_playlist.tracks[0].name, 'b') - self.assertEqual(self.b.current_playlist.tracks[1].name, 'c') - self.assertEqual(self.b.current_playlist.tracks[2].name, 'a') - self.assertEqual(self.b.current_playlist.tracks[3].name, 'd') - self.assertEqual(self.b.current_playlist.tracks[4].name, 'e') - self.assertEqual(self.b.current_playlist.tracks[5].name, 'f') + tracks = self.b.current_playlist.tracks.get() + self.assertEqual(tracks[0].name, 'b') + self.assertEqual(tracks[1].name, 'c') + self.assertEqual(tracks[2].name, 'a') + self.assertEqual(tracks[3].name, 'd') + self.assertEqual(tracks[4].name, 'e') + self.assertEqual(tracks[5].name, 'f') self.assert_(u'OK' in result) def test_moveid(self): @@ -194,12 +196,13 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='d'), Track(name='e'), Track(name='f'), ]) result = self.h.handle_request(u'moveid "4" "2"') - self.assertEqual(self.b.current_playlist.tracks[0].name, 'a') - self.assertEqual(self.b.current_playlist.tracks[1].name, 'b') - self.assertEqual(self.b.current_playlist.tracks[2].name, 'e') - self.assertEqual(self.b.current_playlist.tracks[3].name, 'c') - self.assertEqual(self.b.current_playlist.tracks[4].name, 'd') - self.assertEqual(self.b.current_playlist.tracks[5].name, 'f') + tracks = self.b.current_playlist.tracks.get() + self.assertEqual(tracks[0].name, 'a') + self.assertEqual(tracks[1].name, 'b') + self.assertEqual(tracks[2].name, 'e') + self.assertEqual(tracks[3].name, 'c') + self.assertEqual(tracks[4].name, 'd') + self.assertEqual(tracks[5].name, 'f') self.assert_(u'OK' in result) def test_playlist_returns_same_as_playlistinfo(self): @@ -361,14 +364,15 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): def test_plchangesposid(self): self.b.current_playlist.append([Track(), Track(), Track()]) result = self.h.handle_request(u'plchangesposid "0"') + cp_tracks = self.b.current_playlist.cp_tracks.get() self.assert_(u'cpos: 0' in result) - self.assert_(u'Id: %d' % self.b.current_playlist.cp_tracks[0][0] + self.assert_(u'Id: %d' % cp_tracks[0][0] in result) self.assert_(u'cpos: 2' in result) - self.assert_(u'Id: %d' % self.b.current_playlist.cp_tracks[1][0] + self.assert_(u'Id: %d' % cp_tracks[1][0] in result) self.assert_(u'cpos: 2' in result) - self.assert_(u'Id: %d' % self.b.current_playlist.cp_tracks[2][0] + self.assert_(u'Id: %d' % cp_tracks[2][0] in result) self.assert_(u'OK' in result) @@ -377,9 +381,9 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='a'), Track(name='b'), Track(name='c'), Track(name='d'), Track(name='e'), Track(name='f'), ]) - version = self.b.current_playlist.version + version = self.b.current_playlist.version.get() result = self.h.handle_request(u'shuffle') - self.assert_(version < self.b.current_playlist.version) + self.assert_(version < self.b.current_playlist.version.get()) self.assert_(u'OK' in result) def test_shuffle_with_open_range(self): @@ -387,13 +391,14 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='a'), Track(name='b'), Track(name='c'), Track(name='d'), Track(name='e'), Track(name='f'), ]) - version = self.b.current_playlist.version + version = self.b.current_playlist.version.get() result = self.h.handle_request(u'shuffle "4:"') - self.assert_(version < self.b.current_playlist.version) - self.assertEqual(self.b.current_playlist.tracks[0].name, 'a') - self.assertEqual(self.b.current_playlist.tracks[1].name, 'b') - self.assertEqual(self.b.current_playlist.tracks[2].name, 'c') - self.assertEqual(self.b.current_playlist.tracks[3].name, 'd') + self.assert_(version < self.b.current_playlist.version.get()) + tracks = self.b.current_playlist.tracks.get() + self.assertEqual(tracks[0].name, 'a') + self.assertEqual(tracks[1].name, 'b') + self.assertEqual(tracks[2].name, 'c') + self.assertEqual(tracks[3].name, 'd') self.assert_(u'OK' in result) def test_shuffle_with_closed_range(self): @@ -401,13 +406,14 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='a'), Track(name='b'), Track(name='c'), Track(name='d'), Track(name='e'), Track(name='f'), ]) - version = self.b.current_playlist.version + version = self.b.current_playlist.version.get() result = self.h.handle_request(u'shuffle "1:3"') - self.assert_(version < self.b.current_playlist.version) - self.assertEqual(self.b.current_playlist.tracks[0].name, 'a') - self.assertEqual(self.b.current_playlist.tracks[3].name, 'd') - self.assertEqual(self.b.current_playlist.tracks[4].name, 'e') - self.assertEqual(self.b.current_playlist.tracks[5].name, 'f') + self.assert_(version < self.b.current_playlist.version.get()) + tracks = self.b.current_playlist.tracks.get() + self.assertEqual(tracks[0].name, 'a') + self.assertEqual(tracks[3].name, 'd') + self.assertEqual(tracks[4].name, 'e') + self.assertEqual(tracks[5].name, 'f') self.assert_(u'OK' in result) def test_swap(self): @@ -416,12 +422,13 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='d'), Track(name='e'), Track(name='f'), ]) result = self.h.handle_request(u'swap "1" "4"') - self.assertEqual(self.b.current_playlist.tracks[0].name, 'a') - self.assertEqual(self.b.current_playlist.tracks[1].name, 'e') - self.assertEqual(self.b.current_playlist.tracks[2].name, 'c') - self.assertEqual(self.b.current_playlist.tracks[3].name, 'd') - self.assertEqual(self.b.current_playlist.tracks[4].name, 'b') - self.assertEqual(self.b.current_playlist.tracks[5].name, 'f') + tracks = self.b.current_playlist.tracks.get() + self.assertEqual(tracks[0].name, 'a') + self.assertEqual(tracks[1].name, 'e') + self.assertEqual(tracks[2].name, 'c') + self.assertEqual(tracks[3].name, 'd') + self.assertEqual(tracks[4].name, 'b') + self.assertEqual(tracks[5].name, 'f') self.assert_(u'OK' in result) def test_swapid(self): @@ -430,10 +437,11 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): Track(name='d'), Track(name='e'), Track(name='f'), ]) result = self.h.handle_request(u'swapid "1" "4"') - self.assertEqual(self.b.current_playlist.tracks[0].name, 'a') - self.assertEqual(self.b.current_playlist.tracks[1].name, 'e') - self.assertEqual(self.b.current_playlist.tracks[2].name, 'c') - self.assertEqual(self.b.current_playlist.tracks[3].name, 'd') - self.assertEqual(self.b.current_playlist.tracks[4].name, 'b') - self.assertEqual(self.b.current_playlist.tracks[5].name, 'f') + tracks = self.b.current_playlist.tracks.get() + self.assertEqual(tracks[0].name, 'a') + self.assertEqual(tracks[1].name, 'e') + self.assertEqual(tracks[2].name, 'c') + self.assertEqual(tracks[3].name, 'd') + self.assertEqual(tracks[4].name, 'b') + self.assertEqual(tracks[5].name, 'f') self.assert_(u'OK' in result)