added search to spotify backend to satisfy sonata
This commit is contained in:
commit
d07300666b
@ -42,7 +42,10 @@ class MpdHandler(object):
|
||||
matches = re.match(pattern, request)
|
||||
if matches is not None:
|
||||
groups = matches.groupdict()
|
||||
result = _request_handlers[pattern](self, **groups)
|
||||
try:
|
||||
result = _request_handlers[pattern](self, **groups)
|
||||
except MpdAckError, e:
|
||||
return self.handle_response(u'ACK %s' % e, add_ok=False)
|
||||
if self.command_list is not False:
|
||||
return None
|
||||
else:
|
||||
@ -70,20 +73,19 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^add "(?P<uri>[^"]*)"$')
|
||||
def _add(self, uri):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^addid "(?P<uri>[^"]*)"( (?P<songpos>\d+))*$')
|
||||
def _add(self, uri, songpos=None):
|
||||
# TODO
|
||||
return {'id': 0}
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^clear$')
|
||||
def _clear(self):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^clearerror$')
|
||||
def _clearerror(self):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^close$')
|
||||
def _close(self):
|
||||
@ -116,18 +118,18 @@ class MpdHandler(object):
|
||||
def _consume(self, state):
|
||||
state = int(state)
|
||||
if state:
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
else:
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^count (?P<tag>\S+) (?P<needle>\S+)$')
|
||||
def _count(self, tag, needle):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^crossfade "(?P<seconds>\d+)"$')
|
||||
def _crossfade(self, seconds):
|
||||
seconds = int(seconds)
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^currentsong$')
|
||||
def _currentsong(self):
|
||||
@ -135,11 +137,11 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^delete ((?P<songpos>\d+)|(?P<start>\d+):(?P<end>\d+)*)$')
|
||||
def _delete(self, songpos=None, start=None, end=None):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^deleteid (?P<songid>.*)$')
|
||||
def _deleteid(self, songid):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^$')
|
||||
def _empty(self):
|
||||
@ -147,17 +149,17 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^find (?P<type>(album|artist|title)) (?P<what>.*)$')
|
||||
def _find(self, type, what):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^findadd (?P<type>(album|artist|title)) (?P<what>.*)$')
|
||||
def _findadd(self, type, what):
|
||||
result = self._find(type, what)
|
||||
# TODO Add result to current playlist
|
||||
return result
|
||||
#return result
|
||||
|
||||
@register(r'^idle( (?P<subsystems>.+))*$')
|
||||
def _idle(self, subsystems=None):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^kill$')
|
||||
def _kill(self):
|
||||
@ -166,23 +168,23 @@ class MpdHandler(object):
|
||||
@register(r'^list (?P<type>artist)$')
|
||||
@register(r'^list (?P<type>album)( (?P<artist>.*))*$')
|
||||
def _list(self, type, artist=None):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^listall "(?P<uri>[^"]+)"')
|
||||
def _listall(self, uri):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^listallinfo "(?P<uri>[^"]+)"')
|
||||
def _listallinfo(self, uri):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^listplaylist (?P<name>.+)$')
|
||||
def _listplaylist(self, name):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^listplaylistinfo (?P<name>.+)$')
|
||||
def _listplaylistinfo(self, name):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^listplaylists$')
|
||||
def _listplaylists(self):
|
||||
@ -196,15 +198,15 @@ class MpdHandler(object):
|
||||
def _lsinfo(self, uri):
|
||||
if uri == u'/' or uri is None:
|
||||
return self._listplaylists()
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^move ((?P<songpos>\d+)|(?P<start>\d+):(?P<end>\d+)*) (?P<to>\d+)$')
|
||||
def _move(self, songpos=None, start=None, end=None, to=None):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^moveid (?P<songid>\S+) (?P<to>\d+)$')
|
||||
def _moveid(self, songid, to):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^next$')
|
||||
def _next(self):
|
||||
@ -212,7 +214,7 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^password "(?P<password>[^"]+)"$')
|
||||
def _password(self, password):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^pause "(?P<state>[01])"$')
|
||||
def _pause(self, state):
|
||||
@ -239,19 +241,19 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^playlistadd (?P<name>\S+) "(?P<uri>[^"]+)"$')
|
||||
def _playlistadd(self, name, uri):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^playlistclear (?P<name>\S+)$')
|
||||
def _playlistclear(self, name):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^playlistdelete (?P<name>\S+) (?P<songpos>\d+)$')
|
||||
def _playlistdelete(self, name, songpos):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^playlistfind (?P<tag>\S+) (?P<needle>\S+)$')
|
||||
def _playlistfind(self, tag, needle):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^playlistid( "(?P<songid>\S+)")*$')
|
||||
def _playlistid(self, songid=None):
|
||||
@ -263,11 +265,11 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^playlistmove (?P<name>\S+) (?P<songid>\S+) (?P<songpos>\d+)$')
|
||||
def _playlistdelete(self, name, songid, songpos):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^playlistsearch (?P<tag>\S+) (?P<needle>\S+)$')
|
||||
def _playlistsearch(self, tag, needle):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^plchanges "(?P<version>\d+)"$')
|
||||
def _plchanges(self, version):
|
||||
@ -275,7 +277,7 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^plchangesposid (?P<version>\d+)$')
|
||||
def _plchangesposid(self, version):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^previous$')
|
||||
def _previous(self):
|
||||
@ -283,27 +285,27 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^rename (?P<old_name>\S+) (?P<new_name>\S+)$')
|
||||
def _rename(self, old_name, new_name):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^random "(?P<state>[01])"$')
|
||||
def _random(self, state):
|
||||
state = int(state)
|
||||
if state:
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
else:
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^repeat "(?P<state>[01])"$')
|
||||
def _repeat(self, state):
|
||||
state = int(state)
|
||||
if state:
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
else:
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^replay_gain_mode (?P<mode>(off|track|album))$')
|
||||
def _replay_gain_mode(self, mode):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^replay_gain_status$')
|
||||
def _replay_gain_status(self):
|
||||
@ -315,11 +317,11 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^rm (?P<name>\S+)$')
|
||||
def _rm(self, name):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^save (?P<name>\S+)$')
|
||||
def _save(self, name):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^search "(?P<type>(album|artist|filename|title))" "(?P<what>.+)"$')
|
||||
def _search(self, type, what):
|
||||
@ -327,11 +329,11 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^seek (?P<songpos>.+) (?P<seconds>\d+)$')
|
||||
def _seek(self, songpos, seconds):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^seekid (?P<songid>.+) (?P<seconds>\d+)$')
|
||||
def _seekid(self, songid, seconds):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^setvol "(?P<volume>-*\d+)"$')
|
||||
def _setvol(self, volume):
|
||||
@ -340,23 +342,23 @@ class MpdHandler(object):
|
||||
volume = 0
|
||||
if volume > 100:
|
||||
volume = 100
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^shuffle( (?P<start>\d+):(?P<end>\d+)*)*$')
|
||||
def _shuffle(self, start=None, end=None):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^single "(?P<state>[01])"$')
|
||||
def _single(self, state):
|
||||
state = int(state)
|
||||
if state:
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
else:
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^stats$')
|
||||
def _stats(self):
|
||||
# TODO
|
||||
pass # TODO
|
||||
return {
|
||||
'artists': 0,
|
||||
'albums': 0,
|
||||
@ -390,11 +392,11 @@ class MpdHandler(object):
|
||||
|
||||
@register(r'^swap (?P<songpos1>\d+) (?P<songpos2>\d+)$')
|
||||
def _swap(self, songpos1, songpos2):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^swapid (?P<songid1>\S+) (?P<songid2>\S+)$')
|
||||
def _swapid(self, songid1, songid2):
|
||||
pass # TODO
|
||||
raise MpdNotImplemented # TODO
|
||||
|
||||
@register(r'^update( "(?P<uri>[^"]+)")*$')
|
||||
def _update(self, uri=None, rescan_unmodified_files=False):
|
||||
|
||||
@ -41,7 +41,8 @@ class MpdSession(asynchat.async_chat):
|
||||
response = self.handler.handle_request(input)
|
||||
self.handle_response(response)
|
||||
except MpdAckError, e:
|
||||
self.send_response(u'ACK %s' % e)
|
||||
logger.warning(e)
|
||||
return self.send_response(u'ACK %s' % e)
|
||||
|
||||
def handle_response(self, response):
|
||||
for line in response:
|
||||
|
||||
@ -77,7 +77,7 @@ class StatusHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_clearerror(self):
|
||||
result = self.h.handle_request(u'clearerror')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_currentsong(self):
|
||||
result = self.h.handle_request(u'currentsong')
|
||||
@ -85,11 +85,11 @@ class StatusHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_idle_without_subsystems(self):
|
||||
result = self.h.handle_request(u'idle')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_idle_with_subsystems(self):
|
||||
result = self.h.handle_request(u'idle database playlist')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_stats_command(self):
|
||||
result = self.h.handle_request(u'stats')
|
||||
@ -144,71 +144,71 @@ class PlaybackOptionsHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_consume_off(self):
|
||||
result = self.h.handle_request(u'consume "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_consume_on(self):
|
||||
result = self.h.handle_request(u'consume "1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_crossfade(self):
|
||||
result = self.h.handle_request(u'crossfade "10"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_random_off(self):
|
||||
result = self.h.handle_request(u'random "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_random_on(self):
|
||||
result = self.h.handle_request(u'random "1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_repeat_off(self):
|
||||
result = self.h.handle_request(u'repeat "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_repeat_on(self):
|
||||
result = self.h.handle_request(u'repeat "1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_setvol_below_min(self):
|
||||
result = self.h.handle_request(u'setvol "-10"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_setvol_min(self):
|
||||
result = self.h.handle_request(u'setvol "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_setvol_middle(self):
|
||||
result = self.h.handle_request(u'setvol "50"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_setvol_max(self):
|
||||
result = self.h.handle_request(u'setvol "100"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_setvol_above_max(self):
|
||||
result = self.h.handle_request(u'setvol "110"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_single_off(self):
|
||||
result = self.h.handle_request(u'single "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_single_on(self):
|
||||
result = self.h.handle_request(u'single "1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_replay_gain_mode_off(self):
|
||||
result = self.h.handle_request(u'replay_gain_mode off')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_replay_gain_mode_track(self):
|
||||
result = self.h.handle_request(u'replay_gain_mode track')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_replay_gain_mode_album(self):
|
||||
result = self.h.handle_request(u'replay_gain_mode album')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_replay_gain_status_default(self):
|
||||
expected = u'off'
|
||||
@ -216,24 +216,26 @@ class PlaybackOptionsHandlerTest(unittest.TestCase):
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(expected in result)
|
||||
|
||||
def test_replay_gain_status_off(self):
|
||||
expected = u'off'
|
||||
self.h._replay_gain_mode(expected)
|
||||
result = self.h.handle_request(u'replay_gain_status')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(expected in result)
|
||||
#def test_replay_gain_status_off(self):
|
||||
# expected = u'off'
|
||||
# self.h._replay_gain_mode(expected)
|
||||
# result = self.h.handle_request(u'replay_gain_status')
|
||||
# self.assert_(u'OK' in result)
|
||||
# self.assert_(expected in result)
|
||||
|
||||
#def test_replay_gain_status_track(self):
|
||||
# expected = u'track'
|
||||
# self.h._replay_gain_mode(expected)
|
||||
# result = self.h.handle_request(u'replay_gain_status')
|
||||
# self.assertEquals(expected, result)
|
||||
# self.assert_(u'OK' in result)
|
||||
# self.assert_(expected in result)
|
||||
|
||||
#def test_replay_gain_status_album(self):
|
||||
# expected = u'album'
|
||||
# self.h._replay_gain_mode(expected)
|
||||
# result = self.h.handle_request(u'replay_gain_status')
|
||||
# self.assertEquals(expected, result)
|
||||
# self.assert_(u'OK' in result)
|
||||
# self.assert_(expected in result)
|
||||
|
||||
|
||||
class PlaybackControlHandlerTest(unittest.TestCase):
|
||||
@ -271,11 +273,11 @@ class PlaybackControlHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_seek(self):
|
||||
result = self.h.handle_request(u'seek 0 30')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_seekid(self):
|
||||
result = self.h.handle_request(u'seekid 0 30')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_stop(self):
|
||||
result = self.h.handle_request(u'stop')
|
||||
@ -289,57 +291,51 @@ class CurrentPlaylistHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_add(self):
|
||||
result = self.h.handle_request(u'add "file:///dev/urandom"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_addid_without_songpos(self):
|
||||
result = self.h.handle_request(u'addid "file:///dev/urandom"')
|
||||
self.assert_(u'OK' in result)
|
||||
result = result[0]
|
||||
self.assert_(u'id' in result)
|
||||
|
||||
self.assert_(u'id' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_addid_with_songpos(self):
|
||||
result = self.h.handle_request(u'addid "file:///dev/urandom" 0')
|
||||
self.assert_(u'OK' in result)
|
||||
result = result[0]
|
||||
self.assert_(u'id' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_clear(self):
|
||||
result = self.h.handle_request(u'clear')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_delete_songpos(self):
|
||||
result = self.h.handle_request(u'delete 5')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_delete_open_range(self):
|
||||
result = self.h.handle_request(u'delete 10:')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_delete_closed_range(self):
|
||||
result = self.h.handle_request(u'delete 10:20')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_deleteid(self):
|
||||
result = self.h.handle_request(u'deleteid 0')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_move_songpos(self):
|
||||
result = self.h.handle_request(u'move 5 0')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_move_open_range(self):
|
||||
result = self.h.handle_request(u'move 10: 0')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_move_closed_range(self):
|
||||
result = self.h.handle_request(u'move 10:20 0')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_moveid(self):
|
||||
result = self.h.handle_request(u'moveid 0 10')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_playlist_returns_same_as_playlistinfo(self):
|
||||
playlist_result = self.h.handle_request(u'playlist')
|
||||
@ -348,7 +344,7 @@ class CurrentPlaylistHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_playlistfind(self):
|
||||
result = self.h.handle_request(u'playlistfind tag needle')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_playlistid_without_songid(self):
|
||||
result = self.h.handle_request(u'playlistid')
|
||||
@ -376,7 +372,7 @@ class CurrentPlaylistHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_playlistsearch(self):
|
||||
result = self.h.handle_request(u'playlistsearch tag needle')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_plchanges(self):
|
||||
result = self.h.handle_request(u'plchanges "0"')
|
||||
@ -384,27 +380,27 @@ class CurrentPlaylistHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_plchangesposid(self):
|
||||
result = self.h.handle_request(u'plchangesposid 0')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_shuffle_without_range(self):
|
||||
result = self.h.handle_request(u'shuffle')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_shuffle_with_open_range(self):
|
||||
result = self.h.handle_request(u'shuffle 10:')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_shuffle_with_closed_range(self):
|
||||
result = self.h.handle_request(u'shuffle 10:20')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_swap(self):
|
||||
result = self.h.handle_request(u'swap 10 20')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_swapid(self):
|
||||
result = self.h.handle_request(u'swapid 10 20')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
|
||||
class StoredPlaylistsHandlerTest(unittest.TestCase):
|
||||
@ -413,11 +409,11 @@ class StoredPlaylistsHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_listplaylist(self):
|
||||
result = self.h.handle_request(u'listplaylist name')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_listplaylistinfo(self):
|
||||
result = self.h.handle_request(u'listplaylistinfo name')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_listplaylists(self):
|
||||
result = self.h.handle_request(u'listplaylists')
|
||||
@ -430,31 +426,31 @@ class StoredPlaylistsHandlerTest(unittest.TestCase):
|
||||
def test_playlistadd(self):
|
||||
result = self.h.handle_request(
|
||||
u'playlistadd name "file:///dev/urandom"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_playlistclear(self):
|
||||
result = self.h.handle_request(u'playlistclear name')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_playlistdelete(self):
|
||||
result = self.h.handle_request(u'playlistdelete name 5')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_playlistmove(self):
|
||||
result = self.h.handle_request(u'playlistmove name 5a 10')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_rename(self):
|
||||
result = self.h.handle_request(u'rename name new_name')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_rm(self):
|
||||
result = self.h.handle_request(u'rm name')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_save(self):
|
||||
result = self.h.handle_request(u'save name')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
|
||||
class MusicDatabaseHandlerTest(unittest.TestCase):
|
||||
@ -463,19 +459,19 @@ class MusicDatabaseHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_count(self):
|
||||
result = self.h.handle_request(u'count tag needle')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_find_album(self):
|
||||
result = self.h.handle_request(u'find album what')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_find_artist(self):
|
||||
result = self.h.handle_request(u'find artist what')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_find_title(self):
|
||||
result = self.h.handle_request(u'find title what')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_find_else_should_fail(self):
|
||||
try:
|
||||
@ -486,11 +482,11 @@ class MusicDatabaseHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_findadd(self):
|
||||
result = self.h.handle_request(u'findadd album what')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_list_artist(self):
|
||||
result = self.h.handle_request(u'list artist')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_list_artist_with_artist_should_fail(self):
|
||||
try:
|
||||
@ -501,19 +497,19 @@ class MusicDatabaseHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_list_album_without_artist(self):
|
||||
result = self.h.handle_request(u'list album')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_list_album_with_artist(self):
|
||||
result = self.h.handle_request(u'list album anartist')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_listall(self):
|
||||
result = self.h.handle_request(u'listall "file:///dev/urandom"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_listallinfo(self):
|
||||
result = self.h.handle_request(u'listallinfo "file:///dev/urandom"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_lsinfo_without_path_returns_same_as_listplaylists(self):
|
||||
lsinfo_result = self.h.handle_request(u'lsinfo')
|
||||
@ -522,7 +518,7 @@ class MusicDatabaseHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_lsinfo_with_path(self):
|
||||
result = self.h.handle_request(u'lsinfo ""')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_lsinfo_for_root_returns_same_as_listplaylists(self):
|
||||
lsinfo_result = self.h.handle_request(u'lsinfo "/"')
|
||||
@ -531,19 +527,19 @@ class MusicDatabaseHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_search_album(self):
|
||||
result = self.h.handle_request(u'search "album" "analbum"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_search_artist(self):
|
||||
result = self.h.handle_request(u'search "artist" "anartist"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_search_filename(self):
|
||||
result = self.h.handle_request(u'search "filename" "afilename"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_search_title(self):
|
||||
result = self.h.handle_request(u'search "title" "atitle"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_search_else_should_fail(self):
|
||||
try:
|
||||
@ -607,7 +603,7 @@ class ConnectionHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_password(self):
|
||||
result = self.h.handle_request(u'password "secret"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(u'ACK Not implemented' in result)
|
||||
|
||||
def test_ping(self):
|
||||
result = self.h.handle_request(u'ping')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user