mirror of https://github.com/pybind/pybind11
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
707 B
31 lines
707 B
from __future__ import annotations |
|
|
|
import sys |
|
|
|
import pytest |
|
|
|
asyncio = pytest.importorskip("asyncio") |
|
m = pytest.importorskip("pybind11_tests.async_module") |
|
|
|
if sys.platform.startswith("emscripten"): |
|
pytest.skip("Can't run a new event_loop in pyodide", allow_module_level=True) |
|
|
|
|
|
@pytest.fixture |
|
def event_loop(): |
|
loop = asyncio.new_event_loop() |
|
yield loop |
|
loop.close() |
|
|
|
|
|
async def get_await_result(x): |
|
return await x |
|
|
|
|
|
def test_await(event_loop): |
|
assert event_loop.run_until_complete(get_await_result(m.SupportsAsync())) == 5 |
|
|
|
|
|
def test_await_missing(event_loop): |
|
with pytest.raises(TypeError): |
|
event_loop.run_until_complete(get_await_result(m.DoesNotSupportAsync()))
|
|
|