local: Add test for fallback handling of unknown track uris in playlists
- Checks that adding a non local:track:... uri to a playlist and reading it back works. - Also fixes mistake in API usage where we assumed lookup still raised LookupError.
This commit is contained in:
parent
0f6176a3b4
commit
fcd3e5d5cf
@ -51,12 +51,10 @@ class LocalPlaylistsProvider(base.BasePlaylistsProvider):
|
||||
|
||||
tracks = []
|
||||
for track_uri in parse_m3u(m3u, self._media_dir):
|
||||
try:
|
||||
# TODO: We must use core.library.lookup() to support tracks
|
||||
# from other backends
|
||||
result = self.backend.library.lookup(track_uri)
|
||||
if result:
|
||||
tracks += self.backend.library.lookup(track_uri)
|
||||
except LookupError as ex:
|
||||
# TODO: this is just a quick workaround for issue #527.
|
||||
else:
|
||||
tracks.append(Track(uri=track_uri))
|
||||
|
||||
playlist = Playlist(uri=uri, name=name, tracks=tracks)
|
||||
|
||||
@ -201,6 +201,18 @@ class LocalPlaylistsProviderTest(unittest.TestCase):
|
||||
self.assertNotIn(playlist1, self.core.playlists.playlists)
|
||||
self.assertIn(playlist2, self.core.playlists.playlists)
|
||||
|
||||
@unittest.SkipTest
|
||||
def test_playlist_with_unknown_track(self):
|
||||
pass
|
||||
track = Track(uri='file:///dev/null')
|
||||
playlist = self.core.playlists.create('test')
|
||||
playlist = playlist.copy(tracks=[track])
|
||||
playlist = self.core.playlists.save(playlist)
|
||||
|
||||
backend = self.backend_class(config=self.config, audio=self.audio)
|
||||
|
||||
self.assert_(backend.playlists.playlists)
|
||||
self.assertEqual(
|
||||
'local:playlist:test', backend.playlists.playlists[0].uri)
|
||||
self.assertEqual(
|
||||
playlist.name, backend.playlists.playlists[0].name)
|
||||
self.assertEqual(
|
||||
track.uri, backend.playlists.playlists[0].tracks[0].uri)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user