Open
Description
(event_loop
from pytest-asyncio)
async def test_demo(event_loop, mocker):
callee = mocker.async_stub('callee')
event_loop.call_soon_threadsafe(callee) # Wrong!
await asyncio.sleep(0)
assert callee.called == 1
Expected behavior: callee.called
should be zero
Actual behavior: callee.called
is one, and a warning is produced:
tests/test_basics.py::test_demo
/usr/lib64/python3.11/asyncio/events.py:80: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
self._context.run(self._callback, *self._args)
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
I'm calling this behavior incorrect (or at least unhelpful) because if I were to use a real coroutine instead of async_stub()
, the body never would have executed.