From 301f7320471da715853505baf2d7d89a204b0561 Mon Sep 17 00:00:00 2001 From: Thomas Kemmer Date: Fri, 27 Feb 2015 22:22:28 +0100 Subject: [PATCH 1/2] Improve default get_images() implementation with album/artist URIs. --- mopidy/backend.py | 6 +++--- tests/backend/test_backend.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/mopidy/backend.py b/mopidy/backend.py index 70591b3e..fca01eb0 100644 --- a/mopidy/backend.py +++ b/mopidy/backend.py @@ -104,11 +104,11 @@ class LibraryProvider(object): """ 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] = list(map(lambda u: models.Image(uri=u), 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 7c939132..7c6cc82b 100644 --- a/tests/backend/test_backend.py +++ b/tests/backend/test_backend.py @@ -17,3 +17,14 @@ class LibraryTest(unittest.TestCase): 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) From f65195a6769b3898e3bad81d16021e5920ab14be Mon Sep 17 00:00:00 2001 From: Thomas Kemmer Date: Fri, 27 Feb 2015 22:39:25 +0100 Subject: [PATCH 2/2] More pythonic implementation. --- mopidy/backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mopidy/backend.py b/mopidy/backend.py index fca01eb0..c713d083 100644 --- a/mopidy/backend.py +++ b/mopidy/backend.py @@ -108,7 +108,7 @@ class LibraryProvider(object): for track in self.lookup(uri): if track.album and track.album.images: image_uris.update(track.album.images) - result[uri] = list(map(lambda u: models.Image(uri=u), image_uris)) + result[uri] = [models.Image(uri=u) for u in image_uris] return result # TODO: replace with search(query, exact=True, ...)