We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
import asyncio import pytest from sanic import Blueprint, Sanic, response @pytest.fixture def app(): app = Sanic("test_sanic_app") bp = Blueprint("blueprint_route", url_prefix="/") @bp.route("/test_get") async def bp_root(request): return response.json({"GET": True}) app.blueprint(bp) yield app @pytest.fixture def test_cli(loop, app, sanic_client): return loop.run_until_complete(sanic_client(app)) @pytest.fixture async def sleep(): return await asyncio.sleep(1)
async def test_get(test_cli, sleep): resp = await test_cli.get("/test_get") assert resp.status_code == 200 resp_json = resp.json() assert resp_json == {"GET": True}
and then run pytest got this error
pytest
================================================================================================================== test session starts =================================================================================================================== platform linux -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 rootdir: xxxxxx plugins: asyncio-0.15.1, anyio-3.3.0, sanic-1.8.1 collected 1 item tests/test_api.py FE [100%] ========================================================================================================================= ERRORS ========================================================================================================================= _____________________________________________________________________________________________________________ ERROR at teardown of test_get ______________________________________________________________________________________________________________ loop = <uvloop.Loop running=False closed=True debug=False> @pytest.fixture def sanic_client(loop): """ Create a TestClient instance for test easy use. test_client(app, **kwargs) """ clients = [] async def create_client(app, **kwargs): client = TestClient(app, **kwargs) await client.start_server() clients.append(client) return client yield create_client # Clean up if clients: for client in clients: > loop.run_until_complete(client.close()) .venv/lib/python3.9/site-packages/pytest_sanic/plugin.py:212: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ uvloop/loop.pyx:1468: in uvloop.loop.Loop.run_until_complete ??? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > ??? E RuntimeError: Event loop is closed uvloop/loop.pyx:703: RuntimeError ----------------------------------------------------------------------------------------------------------------- Captured stdout setup ------------------------------------------------------------------------------------------------------------------ [2021-08-09 23:21:34 +0800] [5609] [INFO] Goin' Fast @ http://127.0.0.1:46037 ------------------------------------------------------------------------------------------------------------------- Captured log setup ------------------------------------------------------------------------------------------------------------------- INFO sanic.root:app.py:1236 Goin' Fast @ http://127.0.0.1:46037 ======================================================================================================================== FAILURES ======================================================================================================================== ________________________________________________________________________________________________________________________ test_get ________________________________________________________________________________________________________________________ pyfuncitem = <Function test_get> def pytest_pyfunc_call(pyfuncitem): """ Run test coroutines in an event loop. """ if _is_coroutine(pyfuncitem.function): loop = pyfuncitem.funcargs[LOOP_KEY] funcargs = pyfuncitem.funcargs testargs = {} for arg in pyfuncitem._fixtureinfo.argnames: testargs[arg] = funcargs[arg] loop.run_until_complete( > loop.create_task( pyfuncitem.obj(**testargs) ) ) .venv/lib/python3.9/site-packages/pytest_sanic/plugin.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ uvloop/loop.pyx:1422: in uvloop.loop.Loop.create_task ??? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > ??? E RuntimeError: Event loop is closed uvloop/loop.pyx:703: RuntimeError ----------------------------------------------------------------------------------------------------------------- Captured stdout setup ------------------------------------------------------------------------------------------------------------------ [2021-08-09 23:21:34 +0800] [5609] [INFO] Goin' Fast @ http://127.0.0.1:46037 ------------------------------------------------------------------------------------------------------------------- Captured log setup ------------------------------------------------------------------------------------------------------------------- INFO sanic.root:app.py:1236 Goin' Fast @ http://127.0.0.1:46037 ==================================================================================================================== warnings summary ==================================================================================================================== tests/test_api.py::test_get .venv/lib/python3.9/site-packages/pytest_sanic/plugin.py:77: RuntimeWarning: coroutine 'test_get' was never awaited loop.create_task( tests/test_api.py::test_get .venv/lib/python3.9/site-packages/pytest_sanic/plugin.py:212: RuntimeWarning: coroutine 'TestClient.close' was never awaited loop.run_until_complete(client.close()) -- Docs: https://docs.pytest.org/en/stable/warnings.html ================================================================================================================ short test summary info ================================================================================================================= FAILED tests/test_api.py::test_get - RuntimeError: Event loop is closed ERROR tests/test_api.py::test_get - RuntimeError: Event loop is closed ========================================================================================================= 1 failed, 2 warnings, 1 error in 1.17s =========================================================================================================
The text was updated successfully, but these errors were encountered:
Can you add sanic_client to the code snippet? That would be convenient to check. Thanks!
sanic_client
Sorry, something went wrong.
Facing the same issue, not defining my own sanic_client for loop fixture but getting same error
loop
No branches or pull requests
and then run
pytest
got this errorThe text was updated successfully, but these errors were encountered: