Try to fix exception message handling on Solaris and/or Python 2.6.5
This commit is contained in:
parent
3e4514cf64
commit
1498c2cbba
@ -1,6 +1,7 @@
|
||||
class MpdAckError(Exception):
|
||||
pass
|
||||
def __init__(self, msg):
|
||||
self.msg = msg
|
||||
|
||||
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,8 @@ 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.msg, add_ok=False)
|
||||
if self.command_list is not False:
|
||||
return None
|
||||
else:
|
||||
@ -285,7 +285,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,7 +301,7 @@ class MpdFrontend(object):
|
||||
try:
|
||||
track = self.backend.current_playlist.get_by_id(songid)
|
||||
return self.backend.current_playlist.remove(track)
|
||||
except KeyError, e:
|
||||
except KeyError as e:
|
||||
raise MpdAckError(unicode(e))
|
||||
|
||||
@handle_pattern(r'^clear$')
|
||||
@ -408,8 +408,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(unicode(e))
|
||||
else:
|
||||
return self.backend.current_playlist.playlist.mpd_format()
|
||||
|
||||
@ -821,7 +821,7 @@ class MpdFrontend(object):
|
||||
try:
|
||||
track = self.backend.current_playlist.get_by_id(songid)
|
||||
return self.backend.playback.play(track)
|
||||
except KeyError, e:
|
||||
except KeyError as e:
|
||||
raise MpdAckError(unicode(e))
|
||||
|
||||
@handle_pattern(r'^play "(?P<songpos>\d+)"$')
|
||||
@ -1331,8 +1331,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(unicode(e))
|
||||
|
||||
@handle_pattern(r'^listplaylistinfo "(?P<name>[^"]+)"$')
|
||||
def _stored_playlists_listplaylistinfo(self, name):
|
||||
@ -1351,8 +1351,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(unicode(e))
|
||||
|
||||
@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('Track X not found')
|
||||
except KeyError as e:
|
||||
raise MpdAckError(unicode(e))
|
||||
except MpdAckError as e:
|
||||
self.assertEqual(e.msg, 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.msg, u'Not implemented')
|
||||
Loading…
Reference in New Issue
Block a user