From 806174916d1cd1c455203171e7c5590d2de21031 Mon Sep 17 00:00:00 2001 From: Thomas Kemmer Date: Fri, 5 Sep 2014 05:35:18 +0200 Subject: [PATCH] Change JsonLibrary.lookup to return a list --- mopidy/local/json.py | 4 ++-- tests/local/test_library.py | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/mopidy/local/json.py b/mopidy/local/json.py index 5ae04592..30fbb562 100644 --- a/mopidy/local/json.py +++ b/mopidy/local/json.py @@ -151,9 +151,9 @@ class JsonLibrary(local.Library): def lookup(self, uri): try: - return self._tracks[uri] + return [self._tracks[uri]] except KeyError: - return None + return [] def search(self, query=None, limit=100, offset=0, uris=None, exact=False): tracks = self._tracks.values() diff --git a/tests/local/test_library.py b/tests/local/test_library.py index 831b8605..148c82e5 100644 --- a/tests/local/test_library.py +++ b/tests/local/test_library.py @@ -131,22 +131,18 @@ class LocalLibraryProviderTest(unittest.TestCase): tracks = self.library.lookup('fake uri') self.assertEqual(tracks, []) - @mock.patch.object( - json.JsonLibrary, 'lookup') - def test_lookup_multiple_tracks(self, mock_lookup): + # test backward compatibility with local libraries returning a + # single Track + @mock.patch.object(json.JsonLibrary, 'lookup') + def test_lookup_return_single_track(self, mock_lookup): backend = actor.LocalBackend(config=self.config, audio=None) - mock_lookup.return_value = self.tracks - tracks = backend.library.lookup('fake album uri') - mock_lookup.assert_called_with('fake album uri') - self.assertEqual(tracks, self.tracks) - - mock_lookup.return_value = [self.tracks[0]] + mock_lookup.return_value = self.tracks[0] tracks = backend.library.lookup(self.tracks[0].uri) mock_lookup.assert_called_with(self.tracks[0].uri) self.assertEqual(tracks, self.tracks[0:1]) - mock_lookup.return_value = [] + mock_lookup.return_value = None tracks = backend.library.lookup('fake uri') mock_lookup.assert_called_with('fake uri') self.assertEqual(tracks, [])