Ejemplo n.º 1
0
    def test_open_unix_connection_no_loop_ssl(self):
        with test_utils.run_test_unix_server(use_ssl=True) as httpd:
            conn_fut = asyncio.open_unix_connection(
                httpd.address, ssl=test_utils.dummy_ssl_context(), server_hostname="", loop=self.loop
            )

            self._basetest_open_connection_no_loop_ssl(conn_fut)
Ejemplo n.º 2
0
 def ssl_protocol(self, waiter=None):
     sslcontext = test_utils.dummy_ssl_context()
     app_proto = asyncio.Protocol()
     proto = sslproto.SSLProtocol(self.loop, app_proto, sslcontext, waiter)
     self.assertIs(proto._app_transport.get_protocol(), app_proto)
     self.addCleanup(proto._app_transport.close)
     return proto
Ejemplo n.º 3
0
 def ssl_protocol(self, waiter=None):
     sslcontext = test_utils.dummy_ssl_context()
     app_proto = asyncio.Protocol()
     proto = sslproto.SSLProtocol(self.loop, app_proto, sslcontext, waiter)
     self.assertIs(proto._app_transport.get_protocol(), app_proto)
     self.addCleanup(proto._app_transport.close)
     return proto
Ejemplo n.º 4
0
 def test_open_connection_no_loop_ssl(self):
     with test_utils.run_test_server(use_ssl=True) as httpd:
         conn_fut = asyncio.open_connection(
             *httpd.address,
             ssl=test_utils.dummy_ssl_context(),
             loop=self.loop)
         self._basetest_open_connection_no_loop_ssl(conn_fut)
Ejemplo n.º 5
0
    def test_cancel_handshake(self):
        # Python issue #23197: cancelling an handshake must not raise an
        # exception or log an error, even if the handshake failed
        sslcontext = test_utils.dummy_ssl_context()
        app_proto = asyncio.Protocol()
        waiter = asyncio.Future(loop=self.loop)
        ssl_proto = sslproto.SSLProtocol(self.loop, app_proto, sslcontext,
                                         waiter)
        handshake_fut = asyncio.Future(loop=self.loop)

        def do_handshake(callback):
            exc = Exception()
            callback(exc)
            handshake_fut.set_result(None)
            return []

        waiter.cancel()
        transport = mock.Mock()
        sslpipe = mock.Mock()
        sslpipe.shutdown.return_value = b''
        sslpipe.do_handshake.side_effect = do_handshake
        with mock.patch('asyncio.sslproto._SSLPipe', return_value=sslpipe):
            ssl_proto.connection_made(transport)

        with test_utils.disable_logger():
            self.loop.run_until_complete(handshake_fut)

        # Close the transport
        ssl_proto._app_transport.close()
Ejemplo n.º 6
0
def start(loop, args):
    d = Debug()
    total = 0
    sslctx = None
    if args.tls:
        d.print('using dummy SSLContext')
        sslctx = test_utils.dummy_ssl_context()
    r, w = yield from open_connection(args.host, args.port, ssl=sslctx)
    d.print('r =', r)
    d.print('w =', w)
    if args.stop:
        w.write(b'stop')
        w.close()
    else:
        size = args.size
        data = b'x'*size
        try:
            while True:
                total += size
                d.oprint('writing', size, 'bytes; total', total)
                w.write(data)
                f = w.drain()
                if f:
                    d.print('pausing')
                    yield from f
        except (ConnectionResetError, BrokenPipeError) as exc:
            d.print('caught', repr(exc))
Ejemplo n.º 7
0
def start(loop, args):
    d = Debug()
    total = 0
    sslctx = None
    if args.tls:
        d.print('using dummy SSLContext')
        sslctx = test_utils.dummy_ssl_context()
    r, w = yield from open_connection(args.host, args.port, ssl=sslctx)
    d.print('r =', r)
    d.print('w =', w)
    if args.stop:
        w.write(b'stop')
        w.close()
    else:
        size = args.size
        data = b'x' * size
        try:
            while True:
                total += size
                d.oprint('writing', size, 'bytes; total', total)
                w.write(data)
                f = w.drain()
                if f:
                    d.print('pausing')
                    yield from f
        except (ConnectionResetError, BrokenPipeError) as exc:
            d.print('caught', repr(exc))
Ejemplo n.º 8
0
 def ssl_protocol(self, *, waiter=None, proto=None):
     sslcontext = test_utils.dummy_ssl_context()
     if proto is None:  # app protocol
         proto = asyncio.Protocol()
     ssl_proto = sslproto.SSLProtocol(self.loop, proto, sslcontext, waiter)
     self.assertIs(ssl_proto._app_transport.get_protocol(), proto)
     self.addCleanup(ssl_proto._app_transport.close)
     return ssl_proto
def start(loop, host, port):
    sslctx = None
    if args.tls:
        sslctx = test_utils.dummy_ssl_context()
    tr, pr = yield from loop.create_connection(Client, host, port, ssl=sslctx)
    dprint('tr =', tr)
    dprint('pr =', pr)
    yield from pr.waiter
Ejemplo n.º 10
0
def start(loop, host, port):
    sslctx = None
    if args.tls:
        sslctx = test_utils.dummy_ssl_context()
    tr, pr = yield from loop.create_connection(Client, host, port,
                                               ssl=sslctx)
    dprint('tr =', tr)
    dprint('pr =', pr)
    yield from pr.waiter
Ejemplo n.º 11
0
    def test_open_connection_no_loop_ssl(self):
        with test_utils.run_test_server(use_ssl=True) as httpd:
            try:
                asyncio.set_event_loop(self.loop)
                f = asyncio.open_connection(*httpd.address,
                                            ssl=test_utils.dummy_ssl_context())
                reader, writer = self.loop.run_until_complete(f)
            finally:
                asyncio.set_event_loop(None)
            writer.write(b'GET / HTTP/1.0\r\n\r\n')
            f = reader.read()
            data = self.loop.run_until_complete(f)
            self.assertTrue(data.endswith(b'\r\n\r\nTest message'))

            writer.close()
Ejemplo n.º 12
0
    def test_open_connection_no_loop_ssl(self):
        with test_utils.run_test_server(use_ssl=True) as httpd:
            try:
                events.set_event_loop(self.loop)
                f = streams.open_connection(*httpd.address,
                                            ssl=test_utils.dummy_ssl_context())
                reader, writer = self.loop.run_until_complete(f)
            finally:
                events.set_event_loop(None)
            writer.write(b'GET / HTTP/1.0\r\n\r\n')
            f = reader.read()
            data = self.loop.run_until_complete(f)
            self.assertTrue(data.endswith(b'\r\n\r\nTest message'))

            writer.close()
Ejemplo n.º 13
0
def main():
    asyncio.set_event_loop(None)
    if args.iocp:
        from asyncio.windows_events import ProactorEventLoop
        loop = ProactorEventLoop()
    else:
        loop = asyncio.new_event_loop()
    sslctx = None
    if args.tls:
        sslctx = test_utils.dummy_ssl_context()
    cache = CacheClient(args.host, args.port, sslctx=sslctx, loop=loop)
    try:
        loop.run_until_complete(
            asyncio.gather(
                *[testing(i, cache, loop) for i in range(args.ntasks)],
                loop=loop))
    finally:
        loop.close()
Ejemplo n.º 14
0
def main():
    asyncio.set_event_loop(None)
    if args.iocp:
        from asyncio.windows_events import ProactorEventLoop
        loop = ProactorEventLoop()
    else:
        loop = asyncio.new_event_loop()
    sslctx = None
    if args.tls:
        sslctx = test_utils.dummy_ssl_context()
    cache = CacheClient(args.host, args.port, sslctx=sslctx, loop=loop)
    try:
        loop.run_until_complete(
            asyncio.gather(
                *[testing(i, cache, loop) for i in range(args.ntasks)],
                loop=loop))
    finally:
        loop.close()