Add move singe test and implement move function on controller

This commit is contained in:
Thomas Adamcik 2010-02-07 20:07:02 +01:00
parent f8c29c1dfd
commit a8d1330343
2 changed files with 23 additions and 0 deletions

View File

@ -28,6 +28,20 @@ class BaseCurrentPlaylistController(object):
def load(self, playlist):
self.playlist = playlist
def move(self, start, end, to_position):
tracks = self.playlist.tracks
if start == end:
end += 1
new_tracks = tracks[:start] + tracks[end:]
for track in tracks[start:end]:
new_tracks.insert(to_position, track)
to_position += 1
self.playlist = Playlist(tracks=new_tracks)
class BasePlaybackController(object):
PAUSED = 'paused'
PLAYING = 'playing'

View File

@ -54,6 +54,15 @@ class BaseCurrentPlaylistControllerTest(object):
self.controller.load(new_playlist)
self.assertEqual(new_playlist, self.controller.playlist)
@populate_playlist
def test_move_single(self):
tracks = self.controller.playlist.tracks
self.assertEqual(tracks[0].uri, self.uris[0])
self.controller.move(0, 0, 2)
tracks = self.controller.playlist.tracks
self.assertEqual(tracks[2].uri, self.uris[0])
class BasePlaybackControllerTest(object):
uris = []
backend_class = None