Merge branch 'fhats_search_by_filename' into develop

This commit is contained in:
Stein Magnus Jodal 2012-11-01 19:36:36 +01:00
commit c553c4b9e5
3 changed files with 20 additions and 2 deletions

View File

@ -68,6 +68,8 @@ backends:
- The Spotify backend now includes release year and artist on albums.
- Added support for search by filename to local backend.
v0.8.1 (2012-10-30)
===================

View File

@ -59,7 +59,7 @@ class LocalLibraryProvider(base.BaseLibraryProvider):
result_tracks = filter(album_filter, result_tracks)
elif field == 'artist':
result_tracks = filter(artist_filter, result_tracks)
elif field == 'uri':
elif field in ('uri', 'filename'):
result_tracks = filter(uri_filter, result_tracks)
elif field == 'any':
result_tracks = filter(any_filter, result_tracks)
@ -93,7 +93,7 @@ class LocalLibraryProvider(base.BaseLibraryProvider):
result_tracks = filter(album_filter, result_tracks)
elif field == 'artist':
result_tracks = filter(artist_filter, result_tracks)
elif field == 'uri':
elif field == 'uri' or field == 'filename':
result_tracks = filter(uri_filter, result_tracks)
elif field == 'any':
result_tracks = filter(any_filter, result_tracks)

View File

@ -79,6 +79,15 @@ class LibraryControllerTest(object):
result = self.library.find_exact(album=['album2'])
self.assertEqual(result, Playlist(tracks=self.tracks[1:2]))
def test_find_exact_filename(self):
track_1_filename = 'file://' + path_to_data_dir('uri1')
result = self.library.find_exact(filename=track_1_filename)
self.assertEqual(result, Playlist(tracks=self.tracks[:1]))
track_2_filename = 'file://' + path_to_data_dir('uri2')
result = self.library.find_exact(filename=track_2_filename)
self.assertEqual(result, Playlist(tracks=self.tracks[1:2]))
def test_find_exact_wrong_type(self):
test = lambda: self.library.find_exact(wrong=['test'])
self.assertRaises(LookupError, test)
@ -137,6 +146,13 @@ class LibraryControllerTest(object):
result = self.library.search(uri=['RI2'])
self.assertEqual(result, Playlist(tracks=self.tracks[1:2]))
def test_search_filename(self):
result = self.library.search(filename=['RI1'])
self.assertEqual(result, Playlist(tracks=self.tracks[:1]))
result = self.library.search(filename=['RI2'])
self.assertEqual(result, Playlist(tracks=self.tracks[1:2]))
def test_search_any(self):
result = self.library.search(any=['Tist1'])
self.assertEqual(result, Playlist(tracks=self.tracks[:1]))