Exemple #1
0
    def test_coroutine_function_ok(self):
        """
        Remlote Coroutine Call RCC
        """
        from aioxmlrpc.server import SimpleXMLRPCServer
        @asyncio.coroutine
        def info():
            yield from asyncio.sleep(1)
            return 'ok_return_from_info_coroutine'

        server = SimpleXMLRPCServer()
        server.register_function(info)

        handler = server.request_handler()

        class Mock:
            def __init__(self):
                self.data = b''

            def write(self, data):
                self.data += data

            @asyncio.coroutine
            def drain(self, *args, **kwargs):
                pass

        handler.writer = Mock()
        asyncio.get_event_loop().run_until_complete(asyncio.gather(
            handler.handle_request(**request_info())
        ))

        self.assertTrue(b"<?xml version='1.0'?>\n<methodResponse>\n<params>\n<param>\n<value><string>ok_return_from_info_coroutine</string></value>\n</param>\n</params>\n</methodResponse>\n" in handler.writer.data)
Exemple #2
0
    def test_unknown_function_ok(self):
        """
        test error case
        """
        from aioxmlrpc.server import SimpleXMLRPCServer
        def not_info():
            return 'ok_return_from_info'

        server = SimpleXMLRPCServer()
        server.register_function(not_info)

        handler = server.request_handler()
        class Mock:
            def __init__(self):
                self.data = b''
            def write(self, data):
                self.data += data
            @asyncio.coroutine
            def drain(self, *args, **kwargs):
                pass

        handler.writer = Mock()
        asyncio.get_event_loop().run_until_complete(asyncio.gather(
           handler.handle_request(**request_info())
        ))

        self.assertTrue(b"method \"info\" is not supported" in handler.writer.data)