local: Fix get_images() for local libraries returning single track from lookup().
This commit is contained in:
parent
abe9b7aea7
commit
29b4a2075a
@ -116,7 +116,11 @@ class Library(object):
|
|||||||
result = {}
|
result = {}
|
||||||
for uri in uris:
|
for uri in uris:
|
||||||
image_uris = set()
|
image_uris = set()
|
||||||
for track in self.lookup(uri):
|
tracks = self.lookup(uri)
|
||||||
|
# local libraries may return single track
|
||||||
|
if isinstance(tracks, models.Track):
|
||||||
|
tracks = [tracks]
|
||||||
|
for track in tracks:
|
||||||
if track.album and track.album.images:
|
if track.album and track.album.images:
|
||||||
image_uris.update(track.album.images)
|
image_uris.update(track.album.images)
|
||||||
result[uri] = [models.Image(uri=u) for u in image_uris]
|
result[uri] = [models.Image(uri=u) for u in image_uris]
|
||||||
|
|||||||
@ -597,6 +597,18 @@ class LocalLibraryProviderTest(unittest.TestCase):
|
|||||||
result = library.get_images([track.uri])
|
result = library.get_images([track.uri])
|
||||||
self.assertEqual(result, {track.uri: [image]})
|
self.assertEqual(result, {track.uri: [image]})
|
||||||
|
|
||||||
|
@mock.patch.object(json.JsonLibrary, 'lookup')
|
||||||
|
def test_default_get_images_impl_single_track(self, mock_lookup):
|
||||||
|
library = actor.LocalBackend(config=self.config, audio=None).library
|
||||||
|
|
||||||
|
image = Image(uri='imageuri')
|
||||||
|
album = Album(images=[image.uri])
|
||||||
|
track = Track(uri='trackuri', album=album)
|
||||||
|
mock_lookup.return_value = track
|
||||||
|
|
||||||
|
result = library.get_images([track.uri])
|
||||||
|
self.assertEqual(result, {track.uri: [image]})
|
||||||
|
|
||||||
@mock.patch.object(json.JsonLibrary, 'get_images')
|
@mock.patch.object(json.JsonLibrary, 'get_images')
|
||||||
def test_local_library_get_images(self, mock_get_images):
|
def test_local_library_get_images(self, mock_get_images):
|
||||||
library = actor.LocalBackend(config=self.config, audio=None).library
|
library = actor.LocalBackend(config=self.config, audio=None).library
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user