Releases: pytest-dev/pytest-asyncio
Releases · pytest-dev/pytest-asyncio
pytest-asyncio 1.0.0a1
1.0.0a1 - 2025-05-09
Removed
- The deprecated event_loop fixture.
(#1106)
Added
- Prelimiary support for Python 3.14
(#1025)
Changed
- Scoped event loops (e.g. module-scoped loops) are created once rather
than per scope (e.g. per module). This reduces the number of fixtures
and speeds up collection time, especially for large test suites.
(#1107) - The loop_scope argument to
pytest.mark.asyncio
no longer forces
that a pytest Collector exists at the level of the specified scope.
For example, a test function marked with
pytest.mark.asyncio(loop_scope="class")
no longer requires a class
surrounding the test. This is consistent with the behavior of the
scope argument topytest_asyncio.fixture
.
(#1112)
pytest-asyncio 0.26.0
pytest-asyncio 0.25.3
- Avoid errors in cleanup of async generators when event loop is already closed #1040
pytest-asyncio 0.25.2
- Call
loop.shutdown_asyncgens()
before closing the event loop to ensure async generators are closed in the same manner asasyncio.run
does #1034
pytest-asyncio 0.25.1
pytest-asyncio 0.25.0
0.25.0 (2024-12-13)
- Deprecated: Added warning when asyncio test requests async
@pytest.fixture
in strict mode. This will become an error in a future version of flake8-asyncio. #979 - Updates the error message about pytest.mark.asyncio's scope keyword argument to say loop_scope instead. #1004
- Verbose log displays correct parameter name: asyncio_default_fixture_loop_scope #990
- Propagates contextvars set in async fixtures to other fixtures and tests on Python 3.11 and above. #1008
pytest-asyncio 0.24.0
0.24.0 (2024-08-22)
- BREAKING: Updated minimum supported pytest version to v8.2.0
- Adds an optional loop_scope keyword argument to pytest.mark.asyncio. This argument controls which event loop is used to run the marked async test. #706, #871
- Deprecates the optional scope keyword argument to pytest.mark.asyncio for API consistency with
pytest_asyncio.fixture
. Users are encouraged to use the loop_scope keyword argument, which does exactly the same. - Raises an error when passing scope or loop_scope as a positional argument to
@pytest.mark.asyncio
. #812 - Fixes a bug that caused module-scoped async fixtures to fail when reused in other modules #862 #668
pytest-asyncio 0.24.0a1
0.24.0 (UNRELEASED)
- BREAKING: Updated minimum supported pytest version to v8.2.0
- Adds an optional loop_scope keyword argument to pytest.mark.asyncio. This argument controls which event loop is used to run the marked async test. #706, #871
- Deprecates the optional scope keyword argument to pytest.mark.asyncio for API consistency with
pytest_asyncio.fixture
. Users are encouraged to use the loop_scope keyword argument, which does exactly the same. - Raises an error when passing scope or loop_scope as a positional argument to
@pytest.mark.asyncio
. #812 - Fixes a bug that caused module-scoped async fixtures to fail when reused in other modules #862 #668
pytest-asyncio 0.24.0a0
0.24.0 (UNRELEASED)
- Adds an optional loop_scope keyword argument to pytest.mark.asyncio. This argument controls which event loop is used to run the marked async test. #706, #871
- Deprecates the optional scope keyword argument to pytest.mark.asyncio for API consistency with
pytest_asyncio.fixture
. Users are encouraged to use the loop_scope keyword argument, which does exactly the same. - Raises an error when passing scope or loop_scope as a positional argument to
@pytest.mark.asyncio
. #812
pytest-asyncio 0.23.8
0.23.8 (2024-07-17)
- Fixes a bug that caused duplicate markers in async tests #813
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.