From eb538f46be9b7d6d5e481eacef339456dabd8433 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Tue, 6 Apr 2010 15:50:34 +0200 Subject: [PATCH] Add destroy method to all backend pieces --- mopidy/backends/__init__.py | 27 +++++++++++++++++++++++++++ mopidy/mixers/__init__.py | 3 +++ tests/backends/base.py | 4 ++-- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index da554e3b..a1b7e064 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -41,6 +41,21 @@ class BaseBackend(object): #: List of URI prefixes this backend can handle. uri_handlers = [] + def destroy(self): + if self.current_playlist: + self.current_playlist.destroy() + + if self.library: + self.library.destroy() + + if self.mixer: + self.mixer.destroy() + + if self.playback: + self.playback.destroy() + + if self.stored_playlists: + self.stored_playlists.destroy() class BaseCurrentPlaylistController(object): """ @@ -181,6 +196,9 @@ class BaseCurrentPlaylistController(object): random.shuffle(shuffled) self.playlist = self.playlist.with_(tracks=before+shuffled+after) + def destroy(self): + pass + class BaseLibraryController(object): """ @@ -234,6 +252,9 @@ class BaseLibraryController(object): """ raise NotImplementedError + def destroy(self): + pass + class BasePlaybackController(object): """ @@ -483,6 +504,9 @@ class BasePlaybackController(object): def _stop(self): raise NotImplementedError + def destroy(self): + pass + class BaseStoredPlaylistsController(object): """ @@ -594,3 +618,6 @@ class BaseStoredPlaylistsController(object): :rtype: list of :class:`mopidy.models.Playlist` """ return filter(lambda p: query in p.name, self._playlists) + + def destroy(self): + pass diff --git a/mopidy/mixers/__init__.py b/mopidy/mixers/__init__.py index 786a32d0..7d1dfa56 100644 --- a/mopidy/mixers/__init__.py +++ b/mopidy/mixers/__init__.py @@ -18,6 +18,9 @@ class BaseMixer(object): volume = 100 self._set_volume(volume) + def destroy(self): + pass + def _get_volume(self): """ Return volume as integer in range [0, 100]. :class:`None` if unknown. diff --git a/tests/backends/base.py b/tests/backends/base.py index 420577e9..c16c0e1e 100644 --- a/tests/backends/base.py +++ b/tests/backends/base.py @@ -26,7 +26,7 @@ class BaseCurrentPlaylistControllerTest(object): assert len(self.tracks) >= 3, 'Need at least three tracks to run tests.' def tearDown(self): - self.backend.playback.destroy() + self.backend.destroy() def test_add(self): for track in self.tracks: @@ -205,7 +205,7 @@ class BasePlaybackControllerTest(object): 'First song needs to be at least 2000 miliseconds' def tearDown(self): - self.backend.playback.destroy() + self.backend.destroy() def test_initial_state_is_stopped(self): self.assertEqual(self.playback.state, self.playback.STOPPED)