From 609fdc46ca649f4dec5fa1ce49f4093a1d9f43c1 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sun, 25 Nov 2012 21:13:55 +0100 Subject: [PATCH] jsonrpc: Explain why call to private method failed --- mopidy/utils/jsonrpc.py | 5 +++-- tests/utils/jsonrpc_test.py | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mopidy/utils/jsonrpc.py b/mopidy/utils/jsonrpc.py index aa6e42ce..4bcf3a1c 100644 --- a/mopidy/utils/jsonrpc.py +++ b/mopidy/utils/jsonrpc.py @@ -206,9 +206,10 @@ class JsonRpcWrapper(object): mount, method_name = method_path.rsplit('.', 1) else: mount, method_name = '', method_path + if method_name.startswith('_'): + raise JsonRpcMethodNotFoundError( + data='Private methods are not exported') try: - if method_name.startswith('_'): - raise AttributeError obj = self.objects[mount] return getattr(obj, method_name) except (AttributeError, KeyError): diff --git a/tests/utils/jsonrpc_test.py b/tests/utils/jsonrpc_test.py index ea99a8f3..fa9d2b4c 100644 --- a/tests/utils/jsonrpc_test.py +++ b/tests/utils/jsonrpc_test.py @@ -405,6 +405,7 @@ class JsonRpcSingleCommandErrorTest(JsonRpcTestBase): error = response['error'] self.assertEqual(error['code'], -32601) self.assertEqual(error['message'], 'Method not found') + self.assertEqual(error['data'], 'Private methods are not exported') def test_invalid_params_causes_invalid_params_error(self): request = {