def test_remove_service(self): service_name = "testremove" service = Service(service_name) remove_service(service) with self.assertRaises(RPCMethodNotFound): get_service(service_name)
def parse_procedure(procedure, renderer, **kw): """Execute a procedure. :param procedure: rpc procedure data :param renderer: procedure parser :param kw: arguments are passed into the request object :return: rpc response """ # TODO: add support for batch requests response = {'jsonrpc': '2.0', 'id': None} try: procedure = renderer.deserialize(procedure) request = make_request(procedure, **kw) response['id'] = request.rpc_id service_name, method = request.rpc_method.split('.') service = get_service(service_name) result = service.execute(method, request) except RPCError as err: response['error'] = err.as_dict() except Exception as err: log.error(str(err)) response['error'] = RPCError().as_dict() else: response['result'] = result return renderer.serialize(response)
def test_execute(self): service = get_service('messages') result = service.execute('sayHello', mock.MagicMock()) self.assertEqual(result, 'Hello World')
def test_add_method(self): service = get_service('messages') self.assertTrue(service.methods.get('sayHello'))
def test_add_resource_class(self): self.assertTrue(get_service('messages'))
def test_get_unregistered_service_raises_error(self): with self.assertRaises(RPCMethodNotFound): get_service("unregistered")
def test_get_service(self): service = get_service("test") self.assertIs(service, test_service)