diff --git a/dependencies/default/constraints.txt b/dependencies/default/constraints.txt index a0a1d030..36942cef 100644 --- a/dependencies/default/constraints.txt +++ b/dependencies/default/constraints.txt @@ -5,7 +5,7 @@ hypothesis==6.96.2 iniconfig==2.0.0 packaging==23.2 pluggy==1.3.0 -pytest==7.4.4 +pytest==8.0.0 sortedcontainers==2.4.0 tomli==2.0.1 typing_extensions==4.9.0 diff --git a/dependencies/default/requirements.txt b/dependencies/default/requirements.txt index 107f59f1..3ac25aba 100644 --- a/dependencies/default/requirements.txt +++ b/dependencies/default/requirements.txt @@ -1,3 +1,3 @@ # Always adjust install_requires in setup.cfg and pytest-min-requirements.txt # when changing runtime dependencies -pytest >= 7.0.0,<8 +pytest >= 7.0.0,<9 diff --git a/docs/source/reference/changelog.rst b/docs/source/reference/changelog.rst index c0bdf5da..f662da68 100644 --- a/docs/source/reference/changelog.rst +++ b/docs/source/reference/changelog.rst @@ -2,6 +2,15 @@ Changelog ========= +0.23.5 (UNRELEASED) +=================== +- Declare compatibility with pytest 8 `#737 `_ + +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. + + 0.23.4 (2024-01-28) =================== - pytest-asyncio no longer imports additional, unrelated packages during test collection `#729 `_ diff --git a/setup.cfg b/setup.cfg index 45d70b37..f1f3ea00 100644 --- a/setup.cfg +++ b/setup.cfg @@ -40,7 +40,7 @@ include_package_data = True # Always adjust requirements.txt and pytest-min-requirements.txt when changing runtime dependencies install_requires = - pytest >= 7.0.0,<8 + pytest >= 7.0.0,<9 [options.extras_require] testing = diff --git a/tests/markers/test_session_scope.py b/tests/markers/test_session_scope.py index bd0baee5..9049c172 100644 --- a/tests/markers/test_session_scope.py +++ b/tests/markers/test_session_scope.py @@ -44,7 +44,9 @@ async def test_this_runs_in_same_loop(self): """ ), ) - subpackage_name = "subpkg" + + # subpackage_name must alphabetically come after test_module_one.py + subpackage_name = "z_subpkg" subpkg = pytester.mkpydir(subpackage_name) subpkg.joinpath("test_subpkg.py").write_text( dedent( diff --git a/tests/test_is_async_test.py b/tests/test_is_async_test.py index 512243b3..12e791c1 100644 --- a/tests/test_is_async_test.py +++ b/tests/test_is_async_test.py @@ -77,8 +77,10 @@ def pytest_collection_modifyitems(items): if pytest.version_tuple < (7, 2): # Probably related to https://github.com/pytest-dev/pytest/pull/10012 result.assert_outcomes(failed=1) - else: + elif pytest.version_tuple < (8,): result.assert_outcomes(skipped=1) + else: + result.assert_outcomes(failed=1) def test_returns_true_for_unmarked_coroutine_item_in_auto_mode(pytester: Pytester):