async def test_serve_non_tcp_listener(nursery): listeners = [MemoryListener()] server = WebSocketServer(echo_request_handler, listeners) await nursery.start(server.run) assert len(server.listeners) == 1 with pytest.raises(RuntimeError): server.port assert server.listeners[0].startswith('MemoryListener(')
async def test_wrap_client_stream(nursery): listener = MemoryListener() server = WebSocketServer(echo_request_handler, [listener]) await nursery.start(server.run) stream = await listener.connect() conn = await wrap_client_stream(nursery, stream, HOST, RESOURCE) async with conn: assert not conn.closed await conn.send_message('Hello from client!') msg = await conn.get_message() assert msg == 'Hello from client!' assert conn.local.startswith('StapledStream(') assert conn.closed
async def test_serve_multiple_listeners(nursery): listener1 = (await trio.open_tcp_listeners(0, host=HOST))[0] listener2 = MemoryListener() server = WebSocketServer(echo_request_handler, [listener1, listener2]) await nursery.start(server.run) assert len(server.listeners) == 2 with pytest.raises(RuntimeError): # Even though the first listener has a port, this property is only # usable if you have exactly one listener. server.port # The first listener metadata is a ListenPort instance. assert server.listeners[0].port != 0 # The second listener metadata is a string containing the repr() of a # MemoryListener object. assert server.listeners[1].startswith('MemoryListener(')
async def main(args): ''' Main entry point. ''' logging.info('Starting websocket server…') if args.ssl: ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) try: ssl_context.load_cert_chain(here / 'fake.server.pem') except FileNotFoundError: logging.error( 'Did not find file "fake.server.pem". You need to run' ' generate-cert.py') else: ssl_context = None server = WebSocketServer(handler, args.ip, args.port, ssl_context=ssl_context) await server.listen()
async def main(): ''' Main entry point. ''' logger.info('Starting websocket server on ws://%s:%d', BIND_IP, BIND_PORT) server = WebSocketServer(handler, BIND_IP, BIND_PORT, ssl_context=None) await server.listen()
async def test_serve_with_zero_listeners(nursery): task = trio.hazmat.current_task() with pytest.raises(ValueError): server = WebSocketServer(echo_request_handler, [])