- update to 8.4.1
* #13461: Corrected _pytest.terminal.TerminalReporter.isatty to
support being called as a method. Before it was just a boolean
which could break correct code when using -o log_cli=true).
* #13477: Reintroduced pytest.PytestReturnNotNoneWarning which
was removed by accident in pytest 8.4.
* #13497: Fixed compatibility with Twisted 25+.
- update to 8.4.0:
* #11372: Async tests will now fail, instead of
warning+skipping, if you don't have any suitable plugin
installed.
* #12346: Tests will now fail, instead of raising a warning, if
they return any value other than None.
* #12874: We dropped support for Python 3.8 following its end
of life (2024-10-07).
* #12960: Test functions containing a yield now cause an
explicit error. They have not been run since pytest 4.0, and
were previously marked as an expected failure and deprecation
warning. See :ref:`the docs <yield tests deprecated>` for
more information.
* #10839: Requesting an asynchronous fixture without a
pytest_fixture_setup hook that resolves it will now give a
DeprecationWarning. This most commonly happens if a sync test
requests an async fixture. This should have no effect on a
majority of users with async tests or fixtures using async
pytest plugins, but may affect non-standard hook setups or
autouse=True. For guidance on how to work around this warning
see :ref:`sync-test-async-fixture`.
* #11538: Added :class:`pytest.RaisesGroup` as an equivalent to
OBS-URL: https://build.opensuse.org/request/show/1293771
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=90
* #11372: Async tests will now fail, instead of
warning+skipping, if you don't have any suitable plugin
installed.
* #12346: Tests will now fail, instead of raising a warning, if
they return any value other than None.
* #12874: We dropped support for Python 3.8 following its end
of life (2024-10-07).
* #12960: Test functions containing a yield now cause an
explicit error. They have not been run since pytest 4.0, and
were previously marked as an expected failure and deprecation
warning. See :ref:`the docs <yield tests deprecated>` for
more information.
* #10839: Requesting an asynchronous fixture without a
pytest_fixture_setup hook that resolves it will now give a
DeprecationWarning. This most commonly happens if a sync test
requests an async fixture. This should have no effect on a
majority of users with async tests or fixtures using async
pytest plugins, but may affect non-standard hook setups or
autouse=True. For guidance on how to work around this warning
see :ref:`sync-test-async-fixture`.
* #11538: Added :class:`pytest.RaisesGroup` as an equivalent to
:func:`pytest.raises` for expecting :exc:`ExceptionGroup`.
Also adds :class:`pytest.RaisesExc` which is now the logic
behind :func:`pytest.raises` and used as parameter to
:class:`pytest.RaisesGroup`. RaisesGroup includes the ability
to specify multiple different expected exceptions, the
structure of nested exception groups, and flags for emulating
:ref:`except* <except_star>`. See :ref:`assert-matching-
exception-groups` and docstrings for more information.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=153
- Update to 8.3.5
* Bug fixes
- #11777: Fixed issue where sequences were still being shortened
even with -vv verbosity.
- #12888: Fixed broken input when using Python 3.13+ and a libedit
build of Python, such as on macOS or with uv-managed Python
binaries from the python-build- standalone project.
This could manifest e.g. by a broken prompt when using Pdb,
or seeing empty inputs with manual usage of input() and
suspended capturing.
- #13026: Fixed AttributeError{.interpreted-text role="class"}
crash when using --import-mode=importlib when top-level directory
same name as another module of the standard library.
- #13053: Fixed a regression in pytest 8.3.4 where, when using
--import-mode=importlib, a directory containing py file with
the same name would cause an ImportError
- #13083: Fixed issue where pytest could crash if one of the
collected directories got removed during collection.
* Improved documentation
- #12842: Added dedicated page about using types with pytest.
See types{.interpreted-text role="ref"} for detailed usage.
* Contributor-facing changes
- #13112: Fixed selftest failures in test_terminal.py with Pygments >= 2.19.0
- #13256: Support for Towncrier versions released in 2024 has been re-enabled
when building Sphinx docs -- by webknjaz{.interpreted-text role="user"}.
- Drop pygments.patch, because now in upstream.
OBS-URL: https://build.opensuse.org/request/show/1271899
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=89
* Bug fixes
- #11777: Fixed issue where sequences were still being shortened
even with -vv verbosity.
- #12888: Fixed broken input when using Python 3.13+ and a libedit
build of Python, such as on macOS or with uv-managed Python
binaries from the python-build- standalone project.
This could manifest e.g. by a broken prompt when using Pdb,
or seeing empty inputs with manual usage of input() and
suspended capturing.
- #13026: Fixed AttributeError{.interpreted-text role="class"}
crash when using --import-mode=importlib when top-level directory
same name as another module of the standard library.
- #13053: Fixed a regression in pytest 8.3.4 where, when using
--import-mode=importlib, a directory containing py file with
the same name would cause an ImportError
- #13083: Fixed issue where pytest could crash if one of the
collected directories got removed during collection.
* Improved documentation
- #12842: Added dedicated page about using types with pytest.
See types{.interpreted-text role="ref"} for detailed usage.
* Contributor-facing changes
- #13112: Fixed selftest failures in test_terminal.py with Pygments >= 2.19.0
- #13256: Support for Towncrier versions released in 2024 has been re-enabled
when building Sphinx docs -- by webknjaz{.interpreted-text role="user"}.
- Drop pygments.patch, because now in upstream.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=149
* #12592: Fixed :class:`KeyError` crash when using --import-
mode=importlib in a directory layout where a directory
contains a child directory with the same name.
* #12818: Assertion rewriting now preserves the source ranges
of the original instructions, making it play well with tools
that deal with the AST, like executing.
* #12849: ANSI escape codes for colored output now handled
correctly in :func:`pytest.fail` with pytrace=False.
* #9353: :func:`pytest.approx` now uses strict equality when
given booleans.
* #10558: Fix ambiguous docstring of
:func:`pytest.Config.getoption`.
* #10829: Improve documentation on the current handling of the
--basetemp option and its lack of retention functionality
(:ref:`temporary directory location and retention`).
* #12866: Improved cross-references concerning the
:fixture:`recwarn` fixture.
* #12966: Clarify :ref:`filterwarnings` docs on filter
precedence/order when using multiple
:ref:`@pytest.mark.filterwarnings <pytest.mark.filterwarnings
ref>` marks.
* #12497: Fixed two failing pdb-related tests on Python 3.13.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=146
- update to 8.3.3:
* #12446: Avoid calling @property (and other instance
descriptors) during fixture discovery -- by :user:`asottile`
* #12659: Fixed the issue of not displaying assertion failure
differences when using the parameter --import-mode=importlib
in pytest>=8.1.
* #12667: Fixed a regression where type change in
ExceptionInfo.errisinstance caused mypy to fail.
* #12744: Fixed typing compatibility with Python 3.9 or less --
replaced typing.Self with typing_extensions.Self -- by
:user:`Avasam`
* #12745: Fixed an issue with backslashes being incorrectly
converted in nodeid paths on Windows, ensuring consistent
path handling across environments.
* #6682: Fixed bug where the verbosity levels where not being
respected when printing the "msg" part of failed assertion
(as in assert condition, msg).
* #9422: Fix bug where disabling the terminal plugin via -p
no:terminal would cause crashes related to missing the
verbose option. -- by :user:`GTowers1`
* #12663: Clarify that the pytest_deselected hook should be
called from pytest_collection_modifyitems hook
implementations when items are deselected.
* #12678: Remove erroneous quotes from
tmp_path_retention_policy example in docs.
* #12769: Fix typos discovered by codespell and add codespell
to pre-commit hooks.
OBS-URL: https://build.opensuse.org/request/show/1217929
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=87
* #12446: Avoid calling @property (and other instance
descriptors) during fixture discovery -- by :user:`asottile`
* #12659: Fixed the issue of not displaying assertion failure
differences when using the parameter --import-mode=importlib
in pytest>=8.1.
* #12667: Fixed a regression where type change in
ExceptionInfo.errisinstance caused mypy to fail.
* #12744: Fixed typing compatibility with Python 3.9 or less --
replaced typing.Self with typing_extensions.Self -- by
:user:`Avasam`
* #12745: Fixed an issue with backslashes being incorrectly
converted in nodeid paths on Windows, ensuring consistent
path handling across environments.
* #6682: Fixed bug where the verbosity levels where not being
respected when printing the "msg" part of failed assertion
(as in assert condition, msg).
* #9422: Fix bug where disabling the terminal plugin via -p
no:terminal would cause crashes related to missing the
verbose option. -- by :user:`GTowers1`
* #12663: Clarify that the pytest_deselected hook should be
called from pytest_collection_modifyitems hook
implementations when items are deselected.
* #12678: Remove erroneous quotes from
tmp_path_retention_policy example in docs.
* #12769: Fix typos discovered by codespell and add codespell
to pre-commit hooks.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=144
- update to 8.3.2:
* Resolve regression where `conda` environments where no longer
being automatically detected
- Update to 8.3.1:
* New features
+ Added `--xfail-tb` flag, which turns on traceback output for XFAIL
results.
+ Added support for keyword matching in marker expressions.
+ Added ``--no-fold-skipped`` command line option.
* Improvements
+ The console output now uses the "third-party plugins" terminology.
+ Python virtual environment detection was improved by checking for a
pyvenv.cfg file
+ Do not truncate arguments to functions in output when running with -vvv.
+ The readability of assertion introspection of bound methods has been
enhanced.
+ Added timezone information to the testsuite timestamp in the JUnit XML
report.
* Bug Fixes
+ Fixed reporting of teardown errors in higher-scoped fixtures when
using `--maxfail` or `--stepwise`.
+ pytest.approx now correctly handles Sequence-like objects.
+ Fixed a regression in pytest 8.0 where tracebacks get longer and
longer when multiple tests fail due to a shared higher-scope fixture
which raised
+ Fixed collection error upon encountering an abstract class, including
abstract unittest.TestCase subclasses.
+ Fixed a regression in pytest 8.0.0 where package-scoped parameterized
items were not correctly reordered to minimize setups/teardowns in
OBS-URL: https://build.opensuse.org/request/show/1193499
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=86
* Resolve regression where `conda` environments where no longer
being automatically detected
* Fix `PermissionError` crashes arising from directories which are not
* Keyboard interrupts and system exits are now properly handled during
* Fixed handling of 'Function not implemented' error under squashfuse_ll,
* Fix a regression in pytest 8.2.0 where the permissions of
automatically-created .pytest_cache directories became rwx------
* Fix possible catastrophic performance slowdown on a certain
* Fix a regression in pytest 8.2.0 where unittest class instances were
* Fix possible “Directory not empty” crashes arising from concurent cache
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=141
* New features
+ Added `--xfail-tb` flag, which turns on traceback output for XFAIL
results.
+ Added support for keyword matching in marker expressions.
+ Added ``--no-fold-skipped`` command line option.
* Improvements
+ The console output now uses the "third-party plugins" terminology.
+ Python virtual environment detection was improved by checking for a
pyvenv.cfg file
+ Do not truncate arguments to functions in output when running with -vvv.
+ The readability of assertion introspection of bound methods has been
enhanced.
+ Added timezone information to the testsuite timestamp in the JUnit XML
report.
* Bug Fixes
+ Fixed reporting of teardown errors in higher-scoped fixtures when
using `--maxfail` or `--stepwise`.
+ pytest.approx now correctly handles Sequence-like objects.
+ Fixed a regression in pytest 8.0 where tracebacks get longer and
longer when multiple tests fail due to a shared higher-scope fixture
which raised
+ Fixed collection error upon encountering an abstract class, including
abstract unittest.TestCase subclasses.
+ Fixed a regression in pytest 8.0.0 where package-scoped parameterized
items were not correctly reordered to minimize setups/teardowns in
some cases.
+ Fixed crash with `assert testcase is not None` assertion failure when
re-running unittest tests using plugins like pytest-rerunfailures.
+ Fixed a crash when returning category ``"error"`` or ``"failed"`` with
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=140
- Add patch allow-re-run-regression.patch:
* Fix regression in 8.2.2 that did not allow test case reruns.
- Update to 8.2.2
* Support for Python 3.13 (beta1 at the time of writing).
* Fix `PermissionError` crashes arising from directories which are not
selected on the command-line.
* Keyboard interrupts and system exits are now properly handled during
the test collection.
* Fixed handling of 'Function not implemented' error under squashfuse_ll,
which is a different way to say that the mountpoint is read-only.
* Fix a regression in pytest 8.2.0 where the permissions of
automatically-created .pytest_cache directories became rwx------
instead of the expected rwxr-xr-x.
* Fix possible catastrophic performance slowdown on a certain
parametrization pattern involving many higher-scoped parameters.
* Fix a regression in pytest 8.2.0 where unittest class instances were
not released promptly on test teardown but only on session teardown.
* Fix possible “Directory not empty” crashes arising from concurent cache
dir (.pytest_cache) creation. Regressed in pytest 8.2.0.
- Update to 8.2.0:
* A deprecation warning is now raised when implementations of one of the
following hooks request a deprecated py.path.local parameter.
* Added support for reading command line arguments from a file using the
prefix character @.
* Fixed a regression in pytest 8.0.0 where test classes containing
setup_method and tests using @staticmethod or @classmethod would crash
with AttributeError.
* pluggy>=1.5.0 is now required.
OBS-URL: https://build.opensuse.org/request/show/1179873
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=85
- Update to 8.2.2
* Support for Python 3.13 (beta1 at the time of writing).
* Fix `PermissionError` crashes arising from directories which are not
selected on the command-line.
* Keyboard interrupts and system exits are now properly handled during
the test collection.
* Fixed handling of 'Function not implemented' error under squashfuse_ll,
which is a different way to say that the mountpoint is read-only.
* Fix a regression in pytest 8.2.0 where the permissions of
automatically-created .pytest_cache directories became rwx------
instead of the expected rwxr-xr-x.
* Fix possible catastrophic performance slowdown on a certain
parametrization pattern involving many higher-scoped parameters.
* Fix a regression in pytest 8.2.0 where unittest class instances were
not released promptly on test teardown but only on session teardown.
* Fix possible “Directory not empty” crashes arising from concurent cache
dir (.pytest_cache) creation. Regressed in pytest 8.2.0.
OBS-URL: https://build.opensuse.org/request/show/1179013
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=137
* A deprecation warning is now raised when implementations of one of the
following hooks request a deprecated py.path.local parameter.
* Added support for reading command line arguments from a file using the
prefix character @.
* Fixed a regression in pytest 8.0.0 where test classes containing
setup_method and tests using @staticmethod or @classmethod would crash
with AttributeError.
* pluggy>=1.5.0 is now required.
* Added PYTEST_VERSION environment variable which is defined at the start
of the pytest session and undefined afterwards.
* Improved namespace packages detection when consider_namespace_packages
is enabled.
* pytest.importorskip will now issue a warning if the module could be
found, but raised ImportError.
* Fixed error in pytest.approx when used with numpy arrays and comparing
with other types.
* Added the new consider_namespace_packages configuration option,
defaulting to False.
* Added the new verbosity_test_cases configuration option for fine-grained
control of test execution verbosity.
* --import-mode=importlib <import-mode-importlib> now tries to import
modules using the standard import mechanism.
* Added support for sys.last_exc for post-mortem debugging on Python>=3.12.
* Fixed a regression in pytest 8.0.0 that would cause test collection to
fail due to permission errors when using --pyargs.
* Fix the stacklevel used when warning about marks used on fixtures.
* Fix an edge case where ExceptionInfo._stringify_exception could crash.
* Fix an IndexError crash raising from getstatementrange_ast.
* PytestRemovedIn8Warning deprecation warnings are now errors by default.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=136
- update to 7.4.4:
* Fix non-string constants at the top of file being detected as
docstrings on Python>=3.8.
* Handle an edge case where :data:`sys.stderr` and
:data:`sys.__stderr__` might already be closed when
:ref:`faulthandler` is tearing down.
* Fixed tracebacks from collection errors not getting pruned.
* Removed unhelpful error message from assertion rewrite
mechanism when exceptions are raised in ``__iter__`` methods.
Now they are treated un-iterable instead.
OBS-URL: https://build.opensuse.org/request/show/1136073
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=83
* Fix non-string constants at the top of file being detected as
docstrings on Python>=3.8.
* Handle an edge case where :data:`sys.stderr` and
:data:`sys.__stderr__` might already be closed when
:ref:`faulthandler` is tearing down.
* Fixed tracebacks from collection errors not getting pruned.
* Removed unhelpful error message from assertion rewrite
mechanism when exceptions are raised in ``__iter__`` methods.
Now they are treated un-iterable instead.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=132
* Markers are now considered in the
reverse mro order to ensure base class markers are
considered first -- this resolves a regression.
* Fixed ``:=`` in asserts impacting unrelated test cases.
* Handled an edge case where :data:`sys.stderr` might already
be closed when :ref:`faulthandler` is tearing down.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=130
- update to 7.4.2:
* Fix doctest collection of
`functools.cached_property` objects.
* Fixed bug using
``--importmode=importlib`` which would cause package
``__init__.py`` files to be imported more than once in some
cases.
* Fixed bug where `user_properties`
where not being saved in the JUnit XML file if a fixture
failed during teardown.
* Fixed crash when parsing long
command line arguments that might be interpreted as files.
* Improved Documentation
* Improved disclaimer on pytest
plugin reference page to better indicate this is an
automated, non-curated listing.
- drop fix-test-raising-repr.patch, fix-tests-pygments-2.14.0.patch:
https://docs.pytest.org/en/7.1.x/changelog.html for details
assert actual == pytest.approx(expected)
* pytest used to create directories under /tmp with world-readable
permissions. This means that any user in the system was able to
read information written by tests in temporary directories (such
as those created by the tmp_path/tmpdir fixture). Now the
* #8152: Fixed "(<Skipped instance>)" being shown as a skip reason in the
* #8249: Fix the faulthandler plugin for occasions when running with
* The @pytest.yield_fixture decorator/function is now deprecated.
* Verbose mode now shows the reason that a test was skipped in the
* pytest now warns about unraisable exceptions and unhandled thread
* New pytester fixture, which is identical to testdir but its methods
OBS-URL: https://build.opensuse.org/request/show/1112015
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=80
* Fix doctest collection of
`functools.cached_property` objects.
* Fixed bug using
``--importmode=importlib`` which would cause package
``__init__.py`` files to be imported more than once in some
cases.
* Fixed bug where `user_properties`
where not being saved in the JUnit XML file if a fixture
failed during teardown.
* Fixed crash when parsing long
command line arguments that might be interpreted as files.
* Improved Documentation
* Improved disclaimer on pytest
plugin reference page to better indicate this is an
automated, non-curated listing.
- drop fix-test-raising-repr.patch, fix-tests-pygments-2.14.0.patch:
https://docs.pytest.org/en/7.1.x/changelog.html for details
assert actual == pytest.approx(expected)
* pytest used to create directories under /tmp with world-readable
permissions. This means that any user in the system was able to
read information written by tests in temporary directories (such
as those created by the tmp_path/tmpdir fixture). Now the
* #8152: Fixed "(<Skipped instance>)" being shown as a skip reason in the
* #8249: Fix the faulthandler plugin for occasions when running with
* The @pytest.yield_fixture decorator/function is now deprecated.
* Verbose mode now shows the reason that a test was skipped in the
* pytest now warns about unraisable exceptions and unhandled thread
* New pytester fixture, which is identical to testdir but its methods
* It is now possible to construct a MonkeyPatch object directly as pytest.MonkeyPatch(),
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=126
* Fixed bug where fake intermediate
modules generated by ``--import-mode=importlib`` would not
include the child modules as attributes of the parent modules.
* Fixed error assertion handling in
:func:`pytest.approx` when ``None`` is an expected or
received value when comparing dictionaries.
* Fixed issue when using
``--import-mode=importlib`` together with ``--doctest-
modules`` that caused modules to be imported more than once,
causing problems with modules that have import side effects.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=124
* Added
:func:`ExceptionInfo.from_exception()
<pytest.ExceptionInfo.from_exception>`, a simpler way to
create an :class:`~pytest.ExceptionInfo` from an exception.
This can replace :func:`ExceptionInfo.from_exc_info()
<pytest.ExceptionInfo.from_exc_info()>` for most uses.
* Update test log report annotation
to named tuple and fixed inconsistency in docs for
🪝`pytest_report_teststatus` hook.
* When an exception traceback to be
displayed is completely filtered out (by mechanisms such as
``__tracebackhide__``, internal frames, and similar), now
only the exception string and the following message are
shown:
"All traceback entries are hidden. Pass `--full-trace` to see
hidden and internal frames.".
* Improved verbose output (``-vv``)
of ``skip`` and ``xfail`` reasons by performing text wrapping
while leaving a clear margin for progress output.
* Added ``TerminalReporter.wrap_write()`` as a helper for that.
* Added handling of ``%f``
directive to print microseconds in log format options, such
as ``log-date-format``.
* Added the underlying exception to the cache provider's path
creation and write warning messages.
* Added warning when :confval:`testpaths` is set, but paths are
not found by glob.
In this case, pytest will fall back to searching from the
current directory.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=122
- update to 7.3.2:
* Fix bug where very long option
names could cause pytest to break with ``OSError: [Errno 36]
File name too long`` on some systems.
* Support for Python 3.12
* honored to load root ``conftests``.
* The `monkeypatch` `setitem`/`delitem` type annotations now
allow `TypedDict` arguments.
* Fixed bug in assertion rewriting
where a variable assigned with the walrus operator could not
be used later in a function call.
* Fixed ``--last-failed``'s
"(skipped N files)" functionality for files inside of
packages (directories with `__init__.py` files).
OBS-URL: https://build.opensuse.org/request/show/1093826
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=77
* Fix bug where very long option
names could cause pytest to break with ``OSError: [Errno 36]
File name too long`` on some systems.
* Support for Python 3.12
* honored to load root ``conftests``.
* The `monkeypatch` `setitem`/`delitem` type annotations now
allow `TypedDict` arguments.
* Fixed bug in assertion rewriting
where a variable assigned with the walrus operator could not
be used later in a function call.
* Fixed ``--last-failed``'s
"(skipped N files)" functionality for files inside of
packages (directories with `__init__.py` files).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=120
- update to 7.3.1:
* Python 3.12 support
- update to 7.3.0:
* --log-disable CLI option added to disable individual loggers.
* Added tmp_path_retention_count and tmp_path_retention_policy
configuration options to control how directories created by
the tmp_path fixture are kept.
* For list of omprovements and bugfixes, please read
https://docs.pytest.org/en/stable/changelog.html#pytest-7-3-0-2023-04-08
- update to 7.2.2:
* Fixed :func:`pytest.approx`
handling of dictionaries containing one or more values of
`0.0`.
* Fixed crash if `--cache-show` and `--help` are passed at the
same time.
* Fixed bug where a fixture method named ``teardown`` would
be called as part of ``nose`` teardown stage.
* Fixed crash if ``--fixtures`` and ``--help`` are passed
at the same time.
* Fixed :py:func:`pytest.raises` to
return a 'ContextManager' so that type-checkers could narrow
:code:`pytest.raises(...) if ... else nullcontext()` down to
'ContextManager' rather than 'object'.
* Fix 'importlib.abc.TraversableResources' deprecation warning in
Python 3.12.
* If a test is skipped from inside a fixture, the test summary
now shows the test location instead of the fixture location.
* Fix a race condition when creating junitxml reports,
which could occur when multiple instances of pytest execute
OBS-URL: https://build.opensuse.org/request/show/1084940
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=75
* Fixed :func:`pytest.approx`
handling of dictionaries containing one or more values of
`0.0`.
* Fixed crash if `--cache-show` and `--help` are passed at the
same time.
* Fixed bug where a fixture method named ``teardown`` would
be called as part of ``nose`` teardown stage.
* Fixed crash if ``--fixtures`` and ``--help`` are passed
at the same time.
* Fixed :py:func:`pytest.raises` to
return a 'ContextManager' so that type-checkers could narrow
:code:`pytest.raises(...) if ... else nullcontext()` down to
'ContextManager' rather than 'object'.
* Fix 'importlib.abc.TraversableResources' deprecation warning in
Python 3.12.
* If a test is skipped from inside a fixture, the test summary
now shows the test location instead of the fixture location.
* Fix a race condition when creating junitxml reports,
which could occur when multiple instances of pytest execute
in parallel.
* Fix a race condition when
creating or updating the stepwise plugin's cache, which could
occur when multiple xdist worker nodes try to simultaneously
update the stepwise plugin's cache.
- drop fix-test-raising-repr.patch, fix-tests-pygments-2.14.0.patch:
merged upstream
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=113
- Add fix-test-raising-repr.patch gh#pytest-dev/pytest#10473, this make it
compatible with latest release of python-exceptiongroup
- Remove python_module macro definition
- Update to 7.2.0:
# Deprecations
- #10012: Update pytest.PytestUnhandledCoroutineWarning{.interpreted-text
role="class"} to a deprecation; it will raise an error in pytest 8.
- #10396: pytest no longer depends on the py library. pytest provides a
vendored copy of py.error and py.path modules but will use the py library
if it is installed. If you need other py.* modules, continue to install the
deprecated py library separately, otherwise it can usually be removed as a
dependency.
- #4562: Deprecate configuring hook specs/impls using attributes/marks.
- Instead use :pypytest.hookimpl{.interpreted-text role="func"} and
:pypytest.hookspec{.interpreted-text role="func"}.
For more details, see the docs
<legacy-path-hooks-deprecated>{.interpreted-text role="ref"}.
- #9886: The functionality for running tests written for nose has been
officially deprecated.
This includes:
* Plain setup and teardown functions and methods: this might catch users
by surprise, as setup() and teardown() are not pytest idioms, but part
of the nose support.
* Setup/teardown using the @with_setup decorator.
For more details, consult the deprecation docs
<nose-deprecation>{.interpreted-text role="ref"}.
# Features
- #9897: Added shell-style wildcard support to testpaths.
# Improvements
- #10218: @pytest.mark.parametrize() (and similar functions) now accepts any
Sequence[str] for the argument names, instead of just list[str] and
tuple[str, ...].
(Note that str, which is itself a Sequence[str], is still treated as a
comma-delimited name list, as before).
- #10381: The --no-showlocals flag has been added. This can be passed
directly to tests to override --showlocals declared through addopts.
- #3426: Assertion failures with strings in NFC and NFD forms that normalize
to the same string now have a dedicated error message detailing the issue,
and their utf-8 representation is expresed instead.
- #7337: A warning is now emitted if a test function returns something other
than [None]{.title-ref}. This prevents a common mistake among beginners
that expect that returning a [bool]{.title-ref} (for example [return foo(a,
b) == result]{.title-ref}) would cause a test to pass or fail, instead of
using [assert]{.title-ref}.
- #8508: Introduce multiline display for warning matching via
:pypytest.warns{.interpreted-text role="func"} and enhance match comparison
for :py_pytest._code.ExceptionInfo.match{.interpreted-text role="func"} as
returned by :pypytest.raises{.interpreted-text role="func"}.
- #8646: Improve :pypytest.raises{.interpreted-text role="func"}. Previously
passing an empty tuple would give a confusing error. We now raise
immediately with a more helpful message.
- #9741: On Python 3.11, use the standard library's tomllib{.interpreted-text
role="mod"} to parse TOML. tomli{.interpreted-text role="mod"}` is no
longer a dependency on Python 3.11.
- #9742: Display assertion message without escaped newline characters with
-vv.
- #9823: Improved error message that is shown when no collector is found for
a given file.
- #9873: Some coloring has been added to the short test summary.
- #9883: Normalize the help description of all command-line options.
- #9920: Display full crash messages in short test summary info, when runng
in a CI environment.
- #9987: Added support for hidden configuration file by allowing .pytest.ini
as an alternative to pytest.ini.
# Bug Fixes
- #10150: sys.stdin{.interpreted-text role="data"} now contains all expected
methods of a file-like object when capture is enabled.
- #10382: Do not break into pdb when raise unittest.SkipTest() appears
top-level in a file.
- #7792: Marks are now inherited according to the full MRO in test classes.
Previously, if a test class inherited from two or more classes, only marks
from the first super-class would apply.
When inheriting marks from super-classes, marks from the sub-classes are
now ordered before marks from the super-classes, in MRO order. Previously
it was the reverse.
When inheriting marks from super-classes, the [pytestmark]{.title-ref}
attribute of the sub-class now only contains the marks directly applied to
it. Previously, it also contained marks from its super-classes. Please note
that this attribute should not normally be accessed directly; use
pytest.Node.iter_markers{.interpreted-text role="func"} instead.
- #9159: Showing inner exceptions by forcing native display in
ExceptionGroups even when using display options other than --tb=native. A
temporary step before full implementation of pytest-native display for
inner exceptions in ExceptionGroups.
- #9877: Ensure caplog.get_records(when) returns current/correct data after
invoking caplog.clear().
# Improved Documentation
- #10344: Update information on writing plugins to use pyproject.toml instead
of setup.py.
- #9248: The documentation is now built using Sphinx 5.x (up from 3.x
previously).
- #9291: Update documentation on how pytest.warns{.interpreted-text
role="func"} affects DeprecationWarning{.interpreted-text role="class"}.
- pytest 7.1.3 (2022-08-31)
# Bug Fixes
- #10060: When running with --pdb, TestCase.tearDown is no longer called for
tests when the class has been skipped via unittest.skip or
pytest.mark.skip.
- #10190: Invalid XML characters in setup or teardown error messages are now
properly escaped for JUnit XML reports.
- #10230: Ignore .py files created by pyproject.toml-based editable builds
introduced in pip 21.3.
- #3396: Doctests now respect the --import-mode flag.
- #9514: Type-annotate FixtureRequest.param as Any as a stop gap measure
until 8073{.interpreted-text role="issue"} is fixed.
- #9791: Fixed a path handling code in rewrite.py that seems to work fine,
but was incorrect and fails in some systems.
- #9917: Fixed string representation for pytest.approx{.interpreted-text
role="func"} when used to compare tuples.
# Improved Documentation
- #9937: Explicit note that tmpdir{.interpreted-text role="fixture"} fixture
is discouraged in favour of tmp_path{.interpreted-text role="fixture"}.
OBS-URL: https://build.opensuse.org/request/show/1040176
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=71