Esempio n. 1
0
 def _test_using_event_loop(self, loop):
     sock = socket.socket()
     server_loop_runner(loop, sock, AsyncCalculatorHandler())
     add_result = loop.run_until_complete(
         test_server_with_client(sock, loop)
     )
     self.assertEqual(42, add_result)
Esempio n. 2
0
    def test_THEADER_PROTOCOL_FACTORY_readMessageBegin(self):
        loop = asyncio.get_event_loop()
        loop.set_debug(True)
        sock = socket.socket()
        server_loop_runner(loop, sock, AsyncCalculatorHandler())

        class Probe(object):
            def __init__(self):
                self.touched = False

            def touch(self):
                self.touched = True

        probe = Probe()

        def factory(*args, **kwargs):
            return functools.partial(
                TestThriftClientProtocol,
                probe,
                *args,
                **kwargs,
            )

        add_result = loop.run_until_complete(
            test_server_with_client(
                sock,
                loop,
                factory=factory,
            ))
        self.assertTrue(probe.touched)
        self.assertEqual(42, add_result)
Esempio n. 3
0
    def test_server_in_separate_thread(self):
        sock = socket.socket()
        server_loop = asyncio.new_event_loop()
        server_loop.set_debug(True)
        server = server_loop_runner(server_loop, sock,
                                    AsyncCalculatorHandler())
        server_thread = self._start_server_thread(server, server_loop)

        client_loop = asyncio.new_event_loop()
        client_loop.set_debug(True)
        add_result = client_loop.run_until_complete(
            test_server_with_client(sock, client_loop), )
        self.assertEqual(42, add_result)

        server_loop.call_soon_threadsafe(server.close)
        server_thread.join()
Esempio n. 4
0
    def test_read_error(self):
        '''Test the behavior if readMessageBegin() throws an exception'''
        loop = asyncio.get_event_loop()
        loop.set_debug(True)
        sock = socket.socket()
        server_loop_runner(loop, sock, AsyncCalculatorHandler())

        # A helper Probe class that will raise an exception when
        # it is invoked by readMessageBegin()
        class Probe(object):
            def touch(self):
                raise TTransportException(
                    TTransportException.INVALID_TRANSFORM,
                    'oh noes')

        probe = Probe()

        def factory(*args, **kwargs):
            return functools.partial(
                TestThriftClientProtocol,
                probe,
                *args,
                **kwargs,
            )

        try:
            add_result = loop.run_until_complete(
                test_server_with_client(
                    sock,
                    loop,
                    factory=factory,
                )
            )
            self.fail('expected client method to throw; instead returned %r' %
                      (add_result,))
        except TTransportException as ex:
            self.assertEqual(str(ex), 'oh noes')
            self.assertEqual(ex.type, TTransportException.INVALID_TRANSFORM)