def test_run_with_shutdown(): async def app(scope, receive, send): assert scope["type"] == "http" while True: time.sleep(1) config = Config(app=app, loop="asyncio", workers=2, limit_max_requests=1) server = Server(config=config) sock = config.bind_socket() exc = True def safe_run(): nonlocal exc, server try: exc = None config.setup_event_loop() loop = asyncio.get_event_loop() loop.run_until_complete(server.serve(sockets=[sock])) except Exception as e: exc = e thread = threading.Thread(target=safe_run) thread.start() while not server.started: time.sleep(0.01) server.should_exit = True thread.join() assert exc is None
def serve_in_thread(server: Server): thread = threading.Thread(target=server.run) thread.start() try: while not server.started: time.sleep(1e-3) yield server finally: server.should_exit = True thread.join()
async def server(): config = Config(app=app, lifespan="off") server = Server(config=config) task = asyncio.ensure_future(server.serve()) try: while not server.started: await asyncio.sleep(0.0001) yield server finally: server.should_exit = True await task
async def https_server(cert_and_key_paths): cert_path, key_path = cert_and_key_paths config = Config(app=app, lifespan="off", ssl_certfile=cert_path, ssl_keyfile=key_path, port=8001) server = Server(config=config) task = asyncio.ensure_future(server.serve()) try: while not server.started: await asyncio.sleep(0.0001) yield server finally: server.should_exit = True await task
async def https_server(cert_pem_file, cert_private_key_file): config = Config( app=app, lifespan="off", ssl_certfile=cert_pem_file, ssl_keyfile=cert_private_key_file, port=8001, ) server = Server(config=config) task = asyncio.ensure_future(server.serve()) try: while not server.started: await asyncio.sleep(0.0001) yield server finally: server.should_exit = True await task
def test_server(): server = Server(None) server.should_exit = True server.run()