Merge branch 'master' of git://github.com/jodal/mopidy
This commit is contained in:
commit
81885d27d7
@ -6,7 +6,20 @@ def get_version():
|
||||
def get_mpd_protocol_version():
|
||||
return u'0.16.0'
|
||||
|
||||
class SettingsError(Exception):
|
||||
class MopidyException(Exception):
|
||||
def __init__(self, message):
|
||||
self.message = message
|
||||
|
||||
@property
|
||||
def message(self):
|
||||
"""Reimplement message field that was deprecated in Python 2.6"""
|
||||
return self._message
|
||||
|
||||
@message.setter
|
||||
def message(self, message):
|
||||
self._message = message
|
||||
|
||||
class SettingsError(MopidyException):
|
||||
pass
|
||||
|
||||
class Settings(object):
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
class MpdAckError(Exception):
|
||||
from mopidy import MopidyException
|
||||
|
||||
class MpdAckError(MopidyException):
|
||||
pass
|
||||
|
||||
class MpdNotImplemented(MpdAckError):
|
||||
def __init__(self, *args):
|
||||
super(MpdNotImplemented, self).__init__(u'Not implemented', *args)
|
||||
def __init__(self):
|
||||
super(MpdNotImplemented, self).__init__(u'Not implemented')
|
||||
|
||||
@ -64,8 +64,9 @@ class MpdFrontend(object):
|
||||
groups = matches.groupdict()
|
||||
try:
|
||||
result = _request_handlers[pattern](self, **groups)
|
||||
except MpdAckError, e:
|
||||
return self.handle_response(u'ACK %s' % e, add_ok=False)
|
||||
except MpdAckError as e:
|
||||
return self.handle_response(u'ACK %s' % e.message,
|
||||
add_ok=False)
|
||||
if self.command_list is not False:
|
||||
return None
|
||||
else:
|
||||
@ -285,7 +286,7 @@ class MpdFrontend(object):
|
||||
songpos = int(songpos)
|
||||
track = self.backend.current_playlist.playlist.tracks[songpos]
|
||||
self.backend.current_playlist.remove(track)
|
||||
except IndexError, e:
|
||||
except IndexError as e:
|
||||
raise MpdAckError(u'Position out of bounds')
|
||||
|
||||
@handle_pattern(r'^deleteid "(?P<songid>\d+)"$')
|
||||
@ -301,8 +302,8 @@ class MpdFrontend(object):
|
||||
try:
|
||||
track = self.backend.current_playlist.get_by_id(songid)
|
||||
return self.backend.current_playlist.remove(track)
|
||||
except KeyError, e:
|
||||
raise MpdAckError(unicode(e))
|
||||
except KeyError as e:
|
||||
raise MpdAckError(e[0])
|
||||
|
||||
@handle_pattern(r'^clear$')
|
||||
def _current_playlist_clear(self):
|
||||
@ -408,8 +409,8 @@ class MpdFrontend(object):
|
||||
songid = int(songid)
|
||||
track = self.backend.current_playlist.get_by_id(songid)
|
||||
return track.mpd_format()
|
||||
except KeyError, e:
|
||||
raise MpdAckError(e)
|
||||
except KeyError as e:
|
||||
raise MpdAckError(e[0])
|
||||
else:
|
||||
return self.backend.current_playlist.playlist.mpd_format()
|
||||
|
||||
@ -825,8 +826,8 @@ class MpdFrontend(object):
|
||||
try:
|
||||
track = self.backend.current_playlist.get_by_id(songid)
|
||||
return self.backend.playback.play(track)
|
||||
except KeyError, e:
|
||||
raise MpdAckError(unicode(e))
|
||||
except KeyError as e:
|
||||
raise MpdAckError(e[0])
|
||||
|
||||
@handle_pattern(r'^play "(?P<songpos>\d+)"$')
|
||||
def _playback_playpos(self, songpos):
|
||||
@ -1335,8 +1336,8 @@ class MpdFrontend(object):
|
||||
try:
|
||||
return ['file: %s' % t.uri
|
||||
for t in self.backend.stored_playlists.get_by_name(name).tracks]
|
||||
except KeyError, e:
|
||||
raise MpdAckError(e)
|
||||
except KeyError as e:
|
||||
raise MpdAckError(e[0])
|
||||
|
||||
@handle_pattern(r'^listplaylistinfo "(?P<name>[^"]+)"$')
|
||||
def _stored_playlists_listplaylistinfo(self, name):
|
||||
@ -1355,8 +1356,8 @@ class MpdFrontend(object):
|
||||
try:
|
||||
return self.backend.stored_playlists.get_by_name(name).mpd_format(
|
||||
search_result=True)
|
||||
except KeyError, e:
|
||||
raise MpdAckError(e)
|
||||
except KeyError as e:
|
||||
raise MpdAckError(e[0])
|
||||
|
||||
@handle_pattern(r'^listplaylists$')
|
||||
def _stored_playlists_listplaylists(self):
|
||||
|
||||
19
tests/mpd/exception_test.py
Normal file
19
tests/mpd/exception_test.py
Normal file
@ -0,0 +1,19 @@
|
||||
import unittest
|
||||
|
||||
from mopidy.mpd import MpdAckError, MpdNotImplemented
|
||||
|
||||
class MpdExceptionsTest(unittest.TestCase):
|
||||
def test_key_error_wrapped_in_mpd_ack_error(self):
|
||||
try:
|
||||
try:
|
||||
raise KeyError(u'Track X not found')
|
||||
except KeyError as e:
|
||||
raise MpdAckError(e[0])
|
||||
except MpdAckError as e:
|
||||
self.assertEqual(e.message, u'Track X not found')
|
||||
|
||||
def test_mpd_not_implemented_is_a_mpd_ack_error(self):
|
||||
try:
|
||||
raise MpdNotImplemented
|
||||
except MpdAckError as e:
|
||||
self.assertEqual(e.message, u'Not implemented')
|
||||
Loading…
Reference in New Issue
Block a user