Handle shuffeling of subset
This commit is contained in:
parent
aafde26643
commit
ae9c63580e
@ -51,9 +51,14 @@ class BaseCurrentPlaylistController(object):
|
||||
|
||||
def shuffle(self, start=None, end=None):
|
||||
tracks = self.playlist.tracks
|
||||
random.shuffle(tracks)
|
||||
|
||||
self.playlist = Playlist(tracks=tracks)
|
||||
before = tracks[:start or 0]
|
||||
shuffled = tracks[start:end]
|
||||
after = tracks[end or len(tracks):]
|
||||
|
||||
random.shuffle(shuffled)
|
||||
|
||||
self.playlist = Playlist(tracks=before+shuffled+after)
|
||||
|
||||
class BasePlaybackController(object):
|
||||
PAUSED = 'paused'
|
||||
|
||||
@ -99,6 +99,18 @@ class BaseCurrentPlaylistControllerTest(object):
|
||||
self.assertNotEqual(tracks, shuffled_tracks)
|
||||
self.assertEqual(set(tracks), set(shuffled_tracks))
|
||||
|
||||
@populate_playlist
|
||||
def test_shuffle_subset(self):
|
||||
tracks = self.controller.playlist.tracks
|
||||
random.seed(1)
|
||||
self.controller.shuffle(1, 3)
|
||||
|
||||
shuffled_tracks = self.controller.playlist.tracks
|
||||
|
||||
self.assertNotEqual(tracks, shuffled_tracks)
|
||||
self.assertEqual(tracks[0], shuffled_tracks[0])
|
||||
self.assertEqual(set(tracks), set(shuffled_tracks))
|
||||
|
||||
class BasePlaybackControllerTest(object):
|
||||
uris = []
|
||||
backend_class = None
|
||||
|
||||
Loading…
Reference in New Issue
Block a user