As of #289 all websockets are tested with sansio set in the uvicorn.run execution. This could cause divergent behaviour between those using serve_from_cli and those running uvicorn.run directly.
A server.serve_with_uvicorn or similar may be a way to keep things consistent.