diff --git a/mopidy/backends/local/stored_playlists.py b/mopidy/backends/local/stored_playlists.py index 921fa40c..49d6edba 100644 --- a/mopidy/backends/local/stored_playlists.py +++ b/mopidy/backends/local/stored_playlists.py @@ -6,6 +6,7 @@ import shutil from mopidy import settings from mopidy.backends import base from mopidy.models import Playlist +from mopidy.utils import path from .translator import parse_m3u @@ -27,14 +28,15 @@ class LocalStoredPlaylistsProvider(base.BaseStoredPlaylistsProvider): logger.info('Loading playlists from %s', self._folder) for m3u in glob.glob(os.path.join(self._folder, '*.m3u')): + uri = path.path_to_uri(m3u) name = os.path.splitext(os.path.basename(m3u))[0] tracks = [] - for uri in parse_m3u(m3u, settings.LOCAL_MUSIC_PATH): + for track_uri in parse_m3u(m3u, settings.LOCAL_MUSIC_PATH): try: - tracks.append(self.backend.library.lookup(uri)) + tracks.append(self.backend.library.lookup(track_uri)) except LookupError as ex: logger.error('Playlist item could not be added: %s', ex) - playlist = Playlist(tracks=tracks, name=name) + playlist = Playlist(uri=uri, name=name, tracks=tracks) # FIXME playlist name needs better handling # FIXME tracks should come from lib. lookup diff --git a/tests/backends/local/stored_playlists_test.py b/tests/backends/local/stored_playlists_test.py index 188eb589..d1d6989a 100644 --- a/tests/backends/local/stored_playlists_test.py +++ b/tests/backends/local/stored_playlists_test.py @@ -57,6 +57,8 @@ class LocalStoredPlaylistsControllerTest( self.assertEqual(uri, contents.strip()) def test_playlists_are_loaded_at_startup(self): + playlist_path = os.path.join(settings.LOCAL_PLAYLIST_PATH, 'test.m3u') + track = Track(uri=path_to_uri(path_to_data_dir('uri2'))) playlist = self.stored.create('test') playlist = playlist.copy(tracks=[track]) @@ -65,6 +67,9 @@ class LocalStoredPlaylistsControllerTest( backend = self.backend_class(audio=self.audio) self.assert_(backend.stored_playlists.playlists) + self.assertEqual( + path_to_uri(playlist_path), + backend.stored_playlists.playlists[0].uri) self.assertEqual( playlist.name, backend.stored_playlists.playlists[0].name) self.assertEqual(