Exemple #1
0
    def test_remove_service(self):
        service_name = "testremove"
        service = Service(service_name)

        remove_service(service)
        with self.assertRaises(RPCMethodNotFound):
            get_service(service_name)
Exemple #2
0
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)
Exemple #3
0
 def test_execute(self):
     service = get_service('messages')
     result = service.execute('sayHello', mock.MagicMock())
     self.assertEqual(result, 'Hello World')
Exemple #4
0
 def test_add_method(self):
     service = get_service('messages')
     self.assertTrue(service.methods.get('sayHello'))
Exemple #5
0
 def test_add_resource_class(self):
     self.assertTrue(get_service('messages'))
Exemple #6
0
 def test_get_unregistered_service_raises_error(self):
     with self.assertRaises(RPCMethodNotFound):
         get_service("unregistered")
Exemple #7
0
 def test_get_service(self):
     service = get_service("test")
     self.assertIs(service, test_service)