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 = {}
|
||||
for uri in uris:
|
||||
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:
|
||||
image_uris.update(track.album.images)
|
||||
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])
|
||||
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')
|
||||
def test_local_library_get_images(self, mock_get_images):
|
||||
library = actor.LocalBackend(config=self.config, audio=None).library
|
||||
|
||||
Loading…
Reference in New Issue
Block a user