Implement _current_playlist_shuffle
This commit is contained in:
parent
1a7fbe671b
commit
c8ee771ebc
@ -481,7 +481,11 @@ class MpdHandler(object):
|
|||||||
Shuffles the current playlist. ``START:END`` is optional and
|
Shuffles the current playlist. ``START:END`` is optional and
|
||||||
specifies a range of songs.
|
specifies a range of songs.
|
||||||
"""
|
"""
|
||||||
raise MpdNotImplemented # TODO
|
if start is not None:
|
||||||
|
start = int(start)
|
||||||
|
if end is not None:
|
||||||
|
end = int(end)
|
||||||
|
self.backend.current_playlist.shuffle(start, end)
|
||||||
|
|
||||||
@handle_pattern(r'^swap "(?P<songpos1>\d+)" "(?P<songpos2>\d+)"$')
|
@handle_pattern(r'^swap "(?P<songpos1>\d+)" "(?P<songpos2>\d+)"$')
|
||||||
def _current_playlist_swap(self, songpos1, songpos2):
|
def _current_playlist_swap(self, songpos1, songpos2):
|
||||||
|
|||||||
@ -720,16 +720,39 @@ class CurrentPlaylistHandlerTest(unittest.TestCase):
|
|||||||
self.assert_(u'OK' in result)
|
self.assert_(u'OK' in result)
|
||||||
|
|
||||||
def test_shuffle_without_range(self):
|
def test_shuffle_without_range(self):
|
||||||
|
self.b.current_playlist.load(Playlist(tracks=[
|
||||||
|
Track(name='a'), Track(name='b'), Track(name='c'),
|
||||||
|
Track(name='d'), Track(name='e'), Track(name='f')]))
|
||||||
|
self.assertEquals(self.b.current_playlist.version, 2)
|
||||||
result = self.h.handle_request(u'shuffle')
|
result = self.h.handle_request(u'shuffle')
|
||||||
self.assert_(u'ACK Not implemented' in result)
|
self.assertEquals(self.b.current_playlist.version, 3)
|
||||||
|
self.assert_(u'OK' in result)
|
||||||
|
|
||||||
def test_shuffle_with_open_range(self):
|
def test_shuffle_with_open_range(self):
|
||||||
result = self.h.handle_request(u'shuffle "10:"')
|
self.b.current_playlist.load(Playlist(tracks=[
|
||||||
self.assert_(u'ACK Not implemented' in result)
|
Track(name='a'), Track(name='b'), Track(name='c'),
|
||||||
|
Track(name='d'), Track(name='e'), Track(name='f')]))
|
||||||
|
self.assertEquals(self.b.current_playlist.version, 2)
|
||||||
|
result = self.h.handle_request(u'shuffle "4:"')
|
||||||
|
self.assertEquals(self.b.current_playlist.version, 3)
|
||||||
|
self.assertEquals(self.b.current_playlist.playlist.tracks[0].name, 'a')
|
||||||
|
self.assertEquals(self.b.current_playlist.playlist.tracks[1].name, 'b')
|
||||||
|
self.assertEquals(self.b.current_playlist.playlist.tracks[2].name, 'c')
|
||||||
|
self.assertEquals(self.b.current_playlist.playlist.tracks[3].name, 'd')
|
||||||
|
self.assert_(u'OK' in result)
|
||||||
|
|
||||||
def test_shuffle_with_closed_range(self):
|
def test_shuffle_with_closed_range(self):
|
||||||
result = self.h.handle_request(u'shuffle "10:20"')
|
self.b.current_playlist.load(Playlist(tracks=[
|
||||||
self.assert_(u'ACK Not implemented' in result)
|
Track(name='a'), Track(name='b'), Track(name='c'),
|
||||||
|
Track(name='d'), Track(name='e'), Track(name='f')]))
|
||||||
|
self.assertEquals(self.b.current_playlist.version, 2)
|
||||||
|
result = self.h.handle_request(u'shuffle "1:3"')
|
||||||
|
self.assertEquals(self.b.current_playlist.version, 3)
|
||||||
|
self.assertEquals(self.b.current_playlist.playlist.tracks[0].name, 'a')
|
||||||
|
self.assertEquals(self.b.current_playlist.playlist.tracks[3].name, 'd')
|
||||||
|
self.assertEquals(self.b.current_playlist.playlist.tracks[4].name, 'e')
|
||||||
|
self.assertEquals(self.b.current_playlist.playlist.tracks[5].name, 'f')
|
||||||
|
self.assert_(u'OK' in result)
|
||||||
|
|
||||||
def test_swap(self):
|
def test_swap(self):
|
||||||
result = self.h.handle_request(u'swap "10" "20"')
|
result = self.h.handle_request(u'swap "10" "20"')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user