Skip to content

Releases: pytest-dev/pytest-asyncio

pytest-asyncio 1.0.0

26 May 04:55
v1.0.0
Compare
Choose a tag to compare

1.0.0 - 2025-05-26

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 to pytest_asyncio.fixture.
    (#1112)

Fixed

  • An error caused when using pytest's [--setup-plan]{.title-ref}
    option.
    (#630)
  • Unsuppressed import errors with pytest option
    --doctest-ignore-import-errors
    (#797)
  • A "fixture not found" error in connection with package-scoped loops
    (#1052)

Notes for Downstream Packagers

  • Removed a test that had an ordering dependency on other tests.
    (#1114)

pytest-asyncio 1.0.0a1

09 May 13:35
v1.0.0a1
Compare
Choose a tag to compare
Pre-release

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 to pytest_asyncio.fixture.
    (#1112)

pytest-asyncio 0.26.0

25 Mar 06:22
v0.26.0
Compare
Choose a tag to compare
  • Adds configuration option that sets default event loop scope for all tests #793
  • Improved type annotations for pytest_asyncio.fixture #1045
  • Added typing-extensions as additional dependency for Python <3.10 #1045

pytest-asyncio 0.25.3

28 Jan 18:38
v0.25.3
Compare
Choose a tag to compare
  • Avoid errors in cleanup of async generators when event loop is already closed #1040

pytest-asyncio 0.25.2

08 Jan 06:20
v0.25.2
Compare
Choose a tag to compare
  • Call loop.shutdown_asyncgens() before closing the event loop to ensure async generators are closed in the same manner as asyncio.run does #1034

pytest-asyncio 0.25.1

02 Jan 05:06
v0.25.1
Compare
Choose a tag to compare
  • Fixes an issue that caused a broken event loop when a function-scoped test was executed in between two tests with wider loop scope #950
  • Improves test collection speed in auto mode #1020
  • Corrects the warning that is emitted upon redefining the event_loop fixture

pytest-asyncio 0.25.0

13 Dec 06:12
v0.25.0
Compare
Choose a tag to compare

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

22 Aug 08:03
v0.24.0
Compare
Choose a tag to compare

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

09 Aug 12:03
v0.24.0a1
Compare
Choose a tag to compare
Pre-release

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

30 Jul 13:44
v0.24.0a0
Compare
Choose a tag to compare
Pre-release

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