Handle shuffeling of subset

This commit is contained in:
Thomas Adamcik 2010-02-07 20:48:34 +01:00
parent aafde26643
commit ae9c63580e
2 changed files with 19 additions and 2 deletions

View File

@ -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'

View File

@ -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