68 lines
1.6 KiB
Python
68 lines
1.6 KiB
Python
|
import sys
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
from .. import (
|
||
|
current_async_library, AsyncLibraryNotFoundError,
|
||
|
current_async_library_cvar
|
||
|
)
|
||
|
|
||
|
|
||
|
def test_basics():
|
||
|
with pytest.raises(AsyncLibraryNotFoundError):
|
||
|
current_async_library()
|
||
|
|
||
|
token = current_async_library_cvar.set("generic-lib")
|
||
|
try:
|
||
|
assert current_async_library() == "generic-lib"
|
||
|
finally:
|
||
|
current_async_library_cvar.reset(token)
|
||
|
|
||
|
with pytest.raises(AsyncLibraryNotFoundError):
|
||
|
current_async_library()
|
||
|
|
||
|
|
||
|
def test_asyncio():
|
||
|
import asyncio
|
||
|
|
||
|
with pytest.raises(AsyncLibraryNotFoundError):
|
||
|
current_async_library()
|
||
|
|
||
|
ran = []
|
||
|
|
||
|
async def this_is_asyncio():
|
||
|
assert current_async_library() == "asyncio"
|
||
|
# Call it a second time to exercise the caching logic
|
||
|
assert current_async_library() == "asyncio"
|
||
|
ran.append(True)
|
||
|
|
||
|
loop = asyncio.get_event_loop()
|
||
|
loop.run_until_complete(this_is_asyncio())
|
||
|
assert ran == [True]
|
||
|
loop.close()
|
||
|
|
||
|
with pytest.raises(AsyncLibraryNotFoundError):
|
||
|
current_async_library()
|
||
|
|
||
|
|
||
|
@pytest.mark.skipif(sys.version_info < (3, 6), reason='Curio requires 3.6+')
|
||
|
def test_curio():
|
||
|
import curio
|
||
|
|
||
|
with pytest.raises(AsyncLibraryNotFoundError):
|
||
|
current_async_library()
|
||
|
|
||
|
ran = []
|
||
|
|
||
|
async def this_is_curio():
|
||
|
assert current_async_library() == "curio"
|
||
|
# Call it a second time to exercise the caching logic
|
||
|
assert current_async_library() == "curio"
|
||
|
ran.append(True)
|
||
|
|
||
|
curio.run(this_is_curio)
|
||
|
assert ran == [True]
|
||
|
|
||
|
with pytest.raises(AsyncLibraryNotFoundError):
|
||
|
current_async_library()
|