From 183ff30fa5dd98bd035b68ee94d019c831a82a4d Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sat, 13 Feb 2010 22:43:47 +0100 Subject: [PATCH] Fix test_load_triggers_playing_of_new_playlist --- mopidy/backends/__init__.py | 14 ++++++++++++++ tests/backends/__init__.py | 17 ++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index 9aff19d6..2576f80f 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -39,6 +39,20 @@ class BaseCurrentPlaylistController(object): def load(self, playlist): self.playlist = playlist + playback = self.backend.playback + + # FIXME introduce a mechanism for telling + # playback that it needs to reset + playback.playlist_position = 0 + + if playlist.tracks: + playback.current_track = playlist.tracks[0] + else: + playback.current_track = None + + if playback.state == playback.PLAYING: + self.backend.playback.play() + def move(self, start, end, to_position): tracks = self.playlist.tracks diff --git a/tests/backends/__init__.py b/tests/backends/__init__.py index 844911d2..553130f6 100644 --- a/tests/backends/__init__.py +++ b/tests/backends/__init__.py @@ -84,7 +84,22 @@ class BaseCurrentPlaylistControllerTest(object): self.controller.load(Playlist()) self.assertEqual(self.controller.version, version+1) - def test_load_triggers_playing_of_new_playlist(self): + @populate_playlist + def test_load_preserves_and_updates_play_state(self): + tracks = self.controller.playlist.tracks + playback = self.playback + + self.playback.play() + self.controller.load(Playlist(tracks=[tracks[1]])) + self.assertEqual(playback.state, playback.PLAYING) + self.assertEqual(tracks[1], self.playback.current_track) + + self.playback.stop() + self.controller.load(Playlist(tracks=[tracks[2]])) + self.assertEqual(playback.state, playback.STOPPED) + self.assertEqual(tracks[2], self.playback.current_track) + + def test_load_triggers_playing_of_new_playlist_if_allready_playing(self): raise NotImplementedError @populate_playlist