From 53f3ef488c0176712670f92f61c0e9bb731a0e92 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Thu, 20 Dec 2012 21:26:55 +0100 Subject: [PATCH] local: Reorder search filters and tests --- mopidy/backends/local/library.py | 16 ++++++------ tests/backends/base/library.py | 44 ++++++++++++++++---------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/mopidy/backends/local/library.py b/mopidy/backends/local/library.py index e0e6f423..65c45376 100644 --- a/mopidy/backends/local/library.py +++ b/mopidy/backends/local/library.py @@ -46,23 +46,23 @@ class LocalLibraryProvider(base.BaseLibraryProvider): for value in values: q = value.strip() + uri_filter = lambda t: q == t.uri track_filter = lambda t: q == t.name album_filter = lambda t: q == getattr(t, 'album', Album()).name artist_filter = lambda t: filter( lambda a: q == a.name, t.artists) - uri_filter = lambda t: q == t.uri any_filter = lambda t: ( track_filter(t) or album_filter(t) or artist_filter(t) or uri_filter(t)) - if field == 'track': + if field == 'uri': + result_tracks = filter(uri_filter, result_tracks) + elif field == 'track': result_tracks = filter(track_filter, result_tracks) elif field == 'album': result_tracks = filter(album_filter, result_tracks) elif field == 'artist': result_tracks = filter(artist_filter, result_tracks) - elif field == 'uri': - result_tracks = filter(uri_filter, result_tracks) elif field == 'any': result_tracks = filter(any_filter, result_tracks) else: @@ -80,23 +80,23 @@ class LocalLibraryProvider(base.BaseLibraryProvider): for value in values: q = value.strip().lower() + uri_filter = lambda t: q in t.uri.lower() track_filter = lambda t: q in t.name.lower() album_filter = lambda t: q in getattr( t, 'album', Album()).name.lower() artist_filter = lambda t: filter( lambda a: q in a.name.lower(), t.artists) - uri_filter = lambda t: q in t.uri.lower() any_filter = lambda t: track_filter(t) or album_filter(t) or \ artist_filter(t) or uri_filter(t) - if field == 'track': + if field == 'uri': + result_tracks = filter(uri_filter, result_tracks) + elif field == 'track': result_tracks = filter(track_filter, result_tracks) elif field == 'album': result_tracks = filter(album_filter, result_tracks) elif field == 'artist': result_tracks = filter(artist_filter, result_tracks) - elif field == 'uri': - result_tracks = filter(uri_filter, result_tracks) elif field == 'any': result_tracks = filter(any_filter, result_tracks) else: diff --git a/tests/backends/base/library.py b/tests/backends/base/library.py index 4e9232e5..c9db7767 100644 --- a/tests/backends/base/library.py +++ b/tests/backends/base/library.py @@ -60,11 +60,13 @@ class LibraryControllerTest(object): result = self.library.find_exact(album=['unknown artist']) self.assertEqual(result, []) - def test_find_exact_artist(self): - result = self.library.find_exact(artist=['artist1']) + def test_find_exact_uri(self): + track_1_uri = 'file://' + path_to_data_dir('uri1') + result = self.library.find_exact(uri=track_1_uri) self.assertEqual(result, self.tracks[:1]) - result = self.library.find_exact(artist=['artist2']) + track_2_uri = 'file://' + path_to_data_dir('uri2') + result = self.library.find_exact(uri=track_2_uri) self.assertEqual(result, self.tracks[1:2]) def test_find_exact_track(self): @@ -74,6 +76,13 @@ class LibraryControllerTest(object): result = self.library.find_exact(track=['track2']) self.assertEqual(result, self.tracks[1:2]) + def test_find_exact_artist(self): + result = self.library.find_exact(artist=['artist1']) + self.assertEqual(result, self.tracks[:1]) + + result = self.library.find_exact(artist=['artist2']) + self.assertEqual(result, self.tracks[1:2]) + def test_find_exact_album(self): result = self.library.find_exact(album=['album1']) self.assertEqual(result, self.tracks[:1]) @@ -81,15 +90,6 @@ class LibraryControllerTest(object): result = self.library.find_exact(album=['album2']) self.assertEqual(result, self.tracks[1:2]) - def test_find_exact_uri(self): - track_1_uri = 'file://' + path_to_data_dir('uri1') - result = self.library.find_exact(uri=track_1_uri) - self.assertEqual(result, self.tracks[:1]) - - track_2_uri = 'file://' + path_to_data_dir('uri2') - result = self.library.find_exact(uri=track_2_uri) - self.assertEqual(result, self.tracks[1:2]) - def test_find_exact_wrong_type(self): test = lambda: self.library.find_exact(wrong=['test']) self.assertRaises(LookupError, test) @@ -120,11 +120,11 @@ class LibraryControllerTest(object): result = self.library.search(any=['unknown']) self.assertEqual(result, []) - def test_search_artist(self): - result = self.library.search(artist=['Tist1']) + def test_search_uri(self): + result = self.library.search(uri=['RI1']) self.assertEqual(result, self.tracks[:1]) - result = self.library.search(artist=['Tist2']) + result = self.library.search(uri=['RI2']) self.assertEqual(result, self.tracks[1:2]) def test_search_track(self): @@ -134,6 +134,13 @@ class LibraryControllerTest(object): result = self.library.search(track=['Rack2']) self.assertEqual(result, self.tracks[1:2]) + def test_search_artist(self): + result = self.library.search(artist=['Tist1']) + self.assertEqual(result, self.tracks[:1]) + + result = self.library.search(artist=['Tist2']) + self.assertEqual(result, self.tracks[1:2]) + def test_search_album(self): result = self.library.search(album=['Bum1']) self.assertEqual(result, self.tracks[:1]) @@ -141,13 +148,6 @@ class LibraryControllerTest(object): result = self.library.search(album=['Bum2']) self.assertEqual(result, self.tracks[1:2]) - def test_search_uri(self): - result = self.library.search(uri=['RI1']) - self.assertEqual(result, self.tracks[:1]) - - result = self.library.search(uri=['RI2']) - self.assertEqual(result, self.tracks[1:2]) - def test_search_any(self): result = self.library.search(any=['Tist1']) self.assertEqual(result, self.tracks[:1])