Add test_new_playlist_loaded_callback_when_* and implementation

This commit is contained in:
Thomas Adamcik 2010-02-18 03:18:19 +01:00
parent cdc763b114
commit 084c0a8321
2 changed files with 29 additions and 12 deletions

View File

@ -55,16 +55,7 @@ class BaseCurrentPlaylistController(object):
def load(self, playlist):
self.playlist = playlist
playback = self.backend.playback
if playlist.tracks:
playback.current_track = playlist.tracks[0]
else:
playback.current_track = None
if playback.state == playback.PLAYING:
self.backend.playback.play()
self.backend.playback.new_playlist_loaded_callback()
def move(self, start, end, to_position):
tracks = self.playlist.tracks
@ -115,7 +106,12 @@ class BasePlaybackController(object):
raise NotImplementedError
def new_playlist_loaded_callback(self):
pass
self.current_track = None
if self.state == self.PLAYING:
self.play()
elif self.state == self.PAUSED:
self.stop()
def next(self):
if not self.next_track:

View File

@ -110,7 +110,7 @@ class BaseCurrentPlaylistControllerTest(object):
self.controller.load(Playlist(tracks=[tracks[2]]))
self.assertEqual(playback.state, playback.STOPPED)
self.assertEqual(tracks[2], self.playback.current_track)
self.assertEqual(None, self.playback.current_track)
@populate_playlist
def test_move_single(self):
@ -447,6 +447,27 @@ class BasePlaybackControllerTest(object):
self.assert_(wrapper.called)
@populate_playlist
def test_new_playlist_loaded_callback_when_playing(self):
tracks = self.backend.current_playlist.playlist.tracks
self.playback.play()
self.backend.current_playlist.load(Playlist(tracks=[tracks[2]]))
self.assertEqual(self.playback.state, self.playback.PLAYING)
@populate_playlist
def test_new_playlist_loaded_callback_when_stopped(self):
tracks = self.backend.current_playlist.playlist.tracks
self.backend.current_playlist.load(Playlist(tracks=[tracks[2]]))
self.assertEqual(self.playback.state, self.playback.STOPPED)
@populate_playlist
def test_new_playlist_loaded_callback_when_paused(self):
tracks = self.backend.current_playlist.playlist.tracks
self.playback.play()
self.playback.pause()
self.backend.current_playlist.load(Playlist(tracks=[tracks[2]]))
self.assertEqual(self.playback.state, self.playback.STOPPED)
@populate_playlist
def test_pause_when_stopped(self):
self.playback.pause()