diff --git a/mopidy/local/__init__.py b/mopidy/local/__init__.py index eecaa4a2..542d99f3 100644 --- a/mopidy/local/__init__.py +++ b/mopidy/local/__init__.py @@ -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] diff --git a/tests/local/test_library.py b/tests/local/test_library.py index 13ad9405..39f0e53e 100644 --- a/tests/local/test_library.py +++ b/tests/local/test_library.py @@ -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