From dac5f9e406f3c205d6ed212d4414ca55c94b8f15 Mon Sep 17 00:00:00 2001 From: Ali Ukani Date: Mon, 5 Jan 2015 23:23:55 -0500 Subject: [PATCH 1/2] Add test for exact search with album query --- tests/local/test_search.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 tests/local/test_search.py diff --git a/tests/local/test_search.py b/tests/local/test_search.py new file mode 100644 index 00000000..2a704e48 --- /dev/null +++ b/tests/local/test_search.py @@ -0,0 +1,16 @@ +from __future__ import unicode_literals + +import unittest + +from mopidy.local import search +from mopidy.models import Album, Track + + +class LocalLibrarySearchTest(unittest.TestCase): + def test_find_exact_with_album_query(self): + expected_tracks = [Track(album=Album(name='foo'))] + tracks = [Track(), Track(album=Album(name='bar'))] + expected_tracks + + search_result = search.find_exact(tracks, {'album': ['foo']}) + + self.assertEqual(search_result.tracks, tuple(expected_tracks)) From 20751a5ad75e5b73edc0325fde559b49148014a2 Mon Sep 17 00:00:00 2001 From: Ali Ukani Date: Mon, 5 Jan 2015 23:26:34 -0500 Subject: [PATCH 2/2] Fix album filter: Should work when track's album is an Album or None --- mopidy/local/search.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mopidy/local/search.py b/mopidy/local/search.py index 947902ed..bc46c33e 100644 --- a/mopidy/local/search.py +++ b/mopidy/local/search.py @@ -1,6 +1,6 @@ from __future__ import absolute_import, unicode_literals -from mopidy.models import Album, SearchResult +from mopidy.models import SearchResult def find_exact(tracks, query=None, uris=None): @@ -23,7 +23,8 @@ def find_exact(tracks, query=None, uris=None): uri_filter = lambda t: q == t.uri track_name_filter = lambda t: q == t.name - album_filter = lambda t: q == getattr(t, 'album', Album()).name + album_filter = lambda t: q == getattr( + getattr(t, 'album', None), 'name', None) artist_filter = lambda t: filter( lambda a: q == a.name, t.artists) albumartist_filter = lambda t: any([