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
File details
Details for the file pytest_aio-0.4.7-py3-none-any.whl
.
File metadata
- Download URL: pytest_aio-0.4.7-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9144912a118420497d14e045a40e870955ee9dfcecaf844d32b8742b81aa3c73 |
|
MD5 | 3de457c263131cd9c7be29c9c2063761 |
|
BLAKE2b-256 | 97b29ab0dba9d89233df1d72e04db1c68d2a80ce9cddcff1d355cc469757321e |