Pytest plugin for testing async python code
Project description
pytest-aio
pytest-aio – Is a simple pytest plugin for testing async python code
The plugin supports all popular python async libraries: (Asyncio, Trio, Curio)
pytest-aio has been strongly influenced by AnyIO. Since 2021-02-09 AnyIO has dropped support for Curio, so the plugin has been created.
Requirements
python >= 3.7
Installation
pytest-aio should be installed using pip:
pip install pytest-aio
optionally extras are available:
pip install pytest-aio[curio,trio]
Usage
When installed the plugin run all your async test functions/fixtures.
async def test_async():
assert True
By default each test function will be run with asyncio, trio, curio backends consistently. But you can customise the libraries for all your tests creating the global fixture:
# Run all tests with Asyncio/Trio only
@pytest.fixture(params=['asyncio', 'trio'])
def aiolib(request):
assert request.param
If you want to specify different options for the selected backend, you can do so by passing a tuple of (backend name, options dict):
@pytest.fixture(params=[
pytest.param(('asyncio', {'use_uvloop': False}), id='asyncio'),
pytest.param(('asyncio', {'use_uvloop': True}), id='asyncio+uvloop'),
'trio',
pytest.param(('curio', {'debug': True}), id='curio'),
def aiolib(request):
assert request.param
To set a specific backends for a single test only:
@pytest.mark.parametrize('aiolib', ['asyncio'])
async def only_with_asyncio():
await asyncio.sleep(1)
assert True
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/asgi-tools/issues
Contributing
Development of the project happens at: https://github.com/klen/pytest-aio
License
Licensed under a MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for pytest_aio-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7aa99448f4664aa597b148615e2148a9aaad2d6c4deaf2e06480475e60039a6 |
|
MD5 | 820074388242c17482e539fd33a0b90e |
|
BLAKE2b-256 | b0cec49ae9caa8fea26346c75ec541d459dbcfe9715ee8fc845dcc48439be92d |