diff --git a/mopidy/backend.py b/mopidy/backend.py index 70591b3e7e..c713d08389 100644 --- a/mopidy/backend.py +++ b/mopidy/backend.py @@ -104,11 +104,11 @@ def get_images(self, uris): """ result = {} for uri in uris: + image_uris = set() for track in self.lookup(uri): if track.album and track.album.images: - for image_uri in track.album.images: - image = models.Image(uri=image_uri) - result.setdefault(uri, []).append(image) + image_uris.update(track.album.images) + result[uri] = [models.Image(uri=u) for u in image_uris] return result # TODO: replace with search(query, exact=True, ...) diff --git a/tests/backend/test_backend.py b/tests/backend/test_backend.py index 7c939132d9..7c6cc82b9d 100644 --- a/tests/backend/test_backend.py +++ b/tests/backend/test_backend.py @@ -17,3 +17,14 @@ def test_default_get_images_impl_falls_back_to_album_image(self): expected = {'trackuri': [models.Image(uri='imageuri')]} self.assertEqual(library.get_images(['trackuri']), expected) + + def test_default_get_images_impl_no_album_image(self): + # default implementation now returns an empty list if no + # images are found, though it's not required to + track = models.Track(uri='trackuri') + + library = dummy_backend.DummyLibraryProvider(backend=None) + library.dummy_library.append(track) + + expected = {'trackuri': []} + self.assertEqual(library.get_images(['trackuri']), expected)