From fa362ce93665e0f79be58a767e710438e73c4c3f Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Fri, 30 Apr 2010 20:46:30 +0200 Subject: [PATCH] Handle missing tag cache better --- mopidy/backends/gstreamer.py | 1 + mopidy/utils.py | 11 ++++++++--- tests/backends/base.py | 1 - 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/mopidy/backends/gstreamer.py b/mopidy/backends/gstreamer.py index 72c90716..8271ce81 100644 --- a/mopidy/backends/gstreamer.py +++ b/mopidy/backends/gstreamer.py @@ -185,6 +185,7 @@ class GStreamerLibraryController(BaseLibraryController): def __init__(self, backend): super(GStreamerLibraryController, self).__init__(backend) self._uri_mapping = {} + self.refresh() def refresh(self, uri=None): tracks, artists, albums = parse_mpd_tag_cache(settings.TAG_CACHE, diff --git a/mopidy/utils.py b/mopidy/utils.py index 8ce5069f..754517a7 100644 --- a/mopidy/utils.py +++ b/mopidy/utils.py @@ -140,12 +140,17 @@ def parse_mpd_tag_cache(tag_cache, music_dir=''): """ Converts a MPD tag_cache into a lists of tracks, artists and albums. """ - with open(tag_cache) as library: - contents = library.read() - tracks = set() artists = set() albums = set() + + try: + with open(tag_cache) as library: + contents = library.read() + except IOError, e: + logger.error('Could not tag cache: %s', e) + return tracks, artists, albums + current = {} state = None diff --git a/tests/backends/base.py b/tests/backends/base.py index 1274e6c5..8b1d9ef6 100644 --- a/tests/backends/base.py +++ b/tests/backends/base.py @@ -989,7 +989,6 @@ class BaseLibraryControllerTest(object): def setUp(self): self.backend = self.backend_class(mixer=DummyMixer()) self.library = self.backend.library - self.library.refresh() # FIXME init should call refresh instead def tearDown(self): self.backend.destroy()