mpd: Allow bad 'search' requests

This commit is contained in:
Stein Magnus Jodal 2012-11-20 00:44:15 +01:00
parent 5fbb6328d6
commit dc24876f66
2 changed files with 29 additions and 1 deletions

View File

@ -335,7 +335,7 @@ def rescan(context, uri=None):
@handle_request(
r'^search (?P<mpd_query>("?([Aa]lbum|[Aa]rtist|[Dd]ate|[Ff]ile[name]*|'
r'[Tt]itle|[Aa]ny)"? "[^"]+"\s?)+)$')
r'[Tt]itle|[Aa]ny)"? "[^"]*"\s?)+)$')
def search(context, mpd_query):
"""
*musicpd.org, music database section:*

View File

@ -362,6 +362,10 @@ class MusicDatabaseSearchTest(protocol.BaseTestCase):
self.sendRequest('search album "analbum"')
self.assertInResponse('OK')
def test_search_album_without_filter_value(self):
self.sendRequest('search "album" ""')
self.assertInResponse('OK')
def test_search_artist(self):
self.sendRequest('search "artist" "anartist"')
self.assertInResponse('OK')
@ -370,6 +374,10 @@ class MusicDatabaseSearchTest(protocol.BaseTestCase):
self.sendRequest('search artist "anartist"')
self.assertInResponse('OK')
def test_search_artist_without_filter_value(self):
self.sendRequest('search "artist" ""')
self.assertInResponse('OK')
def test_search_filename(self):
self.sendRequest('search "filename" "afilename"')
self.assertInResponse('OK')
@ -378,6 +386,10 @@ class MusicDatabaseSearchTest(protocol.BaseTestCase):
self.sendRequest('search filename "afilename"')
self.assertInResponse('OK')
def test_search_filename_without_filter_value(self):
self.sendRequest('search "filename" ""')
self.assertInResponse('OK')
def test_search_file(self):
self.sendRequest('search "file" "afilename"')
self.assertInResponse('OK')
@ -386,6 +398,10 @@ class MusicDatabaseSearchTest(protocol.BaseTestCase):
self.sendRequest('search file "afilename"')
self.assertInResponse('OK')
def test_search_file_without_filter_value(self):
self.sendRequest('search "file" ""')
self.assertInResponse('OK')
def test_search_title(self):
self.sendRequest('search "title" "atitle"')
self.assertInResponse('OK')
@ -394,6 +410,10 @@ class MusicDatabaseSearchTest(protocol.BaseTestCase):
self.sendRequest('search title "atitle"')
self.assertInResponse('OK')
def test_search_title_without_filter_value(self):
self.sendRequest('search "title" ""')
self.assertInResponse('OK')
def test_search_any(self):
self.sendRequest('search "any" "anything"')
self.assertInResponse('OK')
@ -402,6 +422,10 @@ class MusicDatabaseSearchTest(protocol.BaseTestCase):
self.sendRequest('search any "anything"')
self.assertInResponse('OK')
def test_search_any_without_filter_value(self):
self.sendRequest('search "any" ""')
self.assertInResponse('OK')
def test_search_date(self):
self.sendRequest('search "date" "2002-01-01"')
self.assertInResponse('OK')
@ -414,6 +438,10 @@ class MusicDatabaseSearchTest(protocol.BaseTestCase):
self.sendRequest('search Date "2005"')
self.assertInResponse('OK')
def test_search_date_without_filter_value(self):
self.sendRequest('search "date" ""')
self.assertInResponse('OK')
def test_search_else_should_fail(self):
self.sendRequest('search "sometype" "something"')
self.assertEqualResponse('ACK [2@0] {search} incorrect arguments')