Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async def test_baseline_h11(async_test_client_h11, CA, server_cert_file):
config = Config(
app=App, limit_max_requests=3, http="h11", ssl_certfile=server_cert_file
)
server = Server(config=config)
config.load()
CA.configure_trust(config.ssl)
# Prepare the coroutine to serve the request
run_request = server.serve()
# Reset the global counter
global global_call_count
global_call_count = 0
# Run coroutines
results = await asyncio.gather(
*[
run_request,
async_test_client_h11.get("/"),
async_test_client_h11.get("/"),
def test_run():
class App:
def __init__(self, scope):
if scope["type"] != "http":
raise Exception()
async def __call__(self, receive, send):
await send({"type": "http.response.start", "status": 204, "headers": []})
await send({"type": "http.response.body", "body": b"", "more_body": False})
class CustomServer(Server):
def install_signal_handlers(self):
pass
config = Config(app=App, loop="asyncio", limit_max_requests=1)
server = CustomServer(config=config)
thread = threading.Thread(target=server.run)
thread.start()
while not server.started:
time.sleep(0.01)
response = requests.get("http://127.0.0.1:8000")
assert response.status_code == 204
thread.join()
def test_run(create_certfile_and_keyfile):
certfile, keyfile = create_certfile_and_keyfile
class App:
def __init__(self, scope):
if scope["type"] != "http":
raise Exception()
async def __call__(self, receive, send):
await send({"type": "http.response.start", "status": 204, "headers": []})
await send({"type": "http.response.body", "body": b"", "more_body": False})
class CustomServer(Server):
def install_signal_handlers(self):
pass
config = Config(
app=App,
loop="asyncio",
limit_max_requests=1,
ssl_keyfile=keyfile.name,
ssl_certfile=certfile.name,
)
server = CustomServer(config=config)
thread = threading.Thread(target=server.run)
thread.start()
while not server.started:
time.sleep(0.01)
with no_ssl_verification():
def run(app, **kwargs):
config = Config(app, **kwargs)
server = Server(config=config)
if (config.reload or config.workers > 1) and not isinstance(app, str):
logger = logging.getLogger("uvicorn.error")
logger.warn(
"You must pass the application as an import string to enable 'reload' or 'workers'."
)
sys.exit(1)
if config.should_reload:
sock = config.bind_socket()
supervisor = StatReload(config, target=server.run, sockets=[sock])
supervisor.run()
elif config.workers > 1:
sock = config.bind_socket()
supervisor = Multiprocess(config, target=server.run, sockets=[sock])
supervisor.run()
def run(self):
self.config.app = self.wsgi
server = Server(config=self.config)
loop = asyncio.get_event_loop()
loop.run_until_complete(server.serve(sockets=self.sockets))
host=host,
port=port,
uds=uds,
fd=fd,
loop=loop,
http=protocol_cls_http,
ws=protocol_cls_ws,
logger=_build_server_logger(app, log_level),
access_log=access_log,
debug=bool(app.debug),
limit_concurrency=limit_concurrency,
# limit_max_requests=limit_max_requests,
timeout_keep_alive=timeout_keep_alive,
# timeout_notify=timeout_notify
)
server = Server(uvicorn_config)
server.run()