diff --git a/mopidy/frontends/mpd/exceptions.py b/mopidy/frontends/mpd/exceptions.py index df90aed7..c6020658 100644 --- a/mopidy/frontends/mpd/exceptions.py +++ b/mopidy/frontends/mpd/exceptions.py @@ -42,6 +42,12 @@ class MpdPasswordError(MpdAckError): super(MpdPasswordError, self).__init__(*args, **kwargs) self.error_code = MpdAckError.ACK_ERROR_PASSWORD +class MpdPermissionError(MpdAckError): + def __init__(self, *args, **kwargs): + super(MpdPermissionError, self).__init__(*args, **kwargs) + self.message = u'you don\'t have permission for "%s"' % self.command + self.error_code = MpdAckError.ACK_ERROR_PERMISSION + class MpdUnknownCommand(MpdAckError): def __init__(self, *args, **kwargs): super(MpdUnknownCommand, self).__init__(*args, **kwargs) diff --git a/tests/frontends/mpd/exception_test.py b/tests/frontends/mpd/exception_test.py index 9b1b47a2..6750189b 100644 --- a/tests/frontends/mpd/exception_test.py +++ b/tests/frontends/mpd/exception_test.py @@ -1,7 +1,7 @@ import unittest -from mopidy.frontends.mpd.exceptions import (MpdAckError, MpdUnknownCommand, - MpdSystemError, MpdNotImplemented) +from mopidy.frontends.mpd.exceptions import (MpdAckError, MpdPermissionError, + MpdUnknownCommand, MpdSystemError, MpdNotImplemented) class MpdExceptionsTest(unittest.TestCase): def test_key_error_wrapped_in_mpd_ack_error(self): @@ -43,3 +43,10 @@ class MpdExceptionsTest(unittest.TestCase): except MpdSystemError as e: self.assertEqual(e.get_mpd_ack(), u'ACK [52@0] {} foo') + + def test_mpd_permission_error(self): + try: + raise MpdPermissionError(command='foo') + except MpdPermissionError as e: + self.assertEqual(e.get_mpd_ack(), + u'ACK [4@0] {foo} you don\'t have permission for "foo"')