From 084c0a8321b95aa29f257dbd6b13bfe020378fc1 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Thu, 18 Feb 2010 03:18:19 +0100 Subject: [PATCH] Add test_new_playlist_loaded_callback_when_* and implementation --- mopidy/backends/__init__.py | 18 +++++++----------- tests/backends/basetests.py | 23 ++++++++++++++++++++++- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index 6851ae5a..94da16e6 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -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: diff --git a/tests/backends/basetests.py b/tests/backends/basetests.py index c70c7f40..ab5d9e6a 100644 --- a/tests/backends/basetests.py +++ b/tests/backends/basetests.py @@ -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()