From aafde266432c3dfb0af7b69ee0ef14b4b4ae6c7d Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sun, 7 Feb 2010 20:34:43 +0100 Subject: [PATCH] Add test shuffle and shuffle method --- mopidy/backends/__init__.py | 8 +++++++- tests/backends/__init__.py | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index 594d7b0c..2bd076b3 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -1,4 +1,5 @@ import logging +import random import time from mopidy.exceptions import MpdNotImplemented @@ -44,11 +45,16 @@ class BaseCurrentPlaylistController(object): def remove(self, position): tracks = self.playlist.tracks - del tracks[position] self.playlist = Playlist(tracks=tracks) + def shuffle(self, start=None, end=None): + tracks = self.playlist.tracks + random.shuffle(tracks) + + self.playlist = Playlist(tracks=tracks) + class BasePlaybackController(object): PAUSED = 'paused' PLAYING = 'playing' diff --git a/tests/backends/__init__.py b/tests/backends/__init__.py index 5ae0e2a6..f14c5351 100644 --- a/tests/backends/__init__.py +++ b/tests/backends/__init__.py @@ -1,3 +1,5 @@ +import random + from mopidy.models import Track, Playlist def populate_playlist(func): @@ -86,6 +88,17 @@ class BaseCurrentPlaylistControllerTest(object): self.assertNotEqual(track, self.controller.playlist.tracks[1]) + @populate_playlist + def test_shuffle_all(self): + tracks = self.controller.playlist.tracks + random.seed(1) + self.controller.shuffle() + + shuffled_tracks = self.controller.playlist.tracks + + self.assertNotEqual(tracks, shuffled_tracks) + self.assertEqual(set(tracks), set(shuffled_tracks)) + class BasePlaybackControllerTest(object): uris = [] backend_class = None