Sourced from pytest's releases.
8.2.0
pytest 8.2.0 (2024-04-27)
Deprecations
#12069: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated
py.path.local
parameter instead of thepathlib.Path
parameter which replaced it:
pytest_ignore_collect
{.interpreted-text role="hook"} - thepath
parameter - usecollection_path
instead.pytest_collect_file
{.interpreted-text role="hook"} - thepath
parameter - usefile_path
instead.pytest_pycollect_makemodule
{.interpreted-text role="hook"} - thepath
parameter - usemodule_path
instead.pytest_report_header
{.interpreted-text role="hook"} - thestartdir
parameter - usestart_path
instead.pytest_report_collectionfinish
{.interpreted-text role="hook"} - thestartdir
parameter - usestart_path
instead.The replacement parameters are available since pytest 7.0.0. The old parameters will be removed in pytest 9.0.0.
See
legacy-path-hooks-deprecated
{.interpreted-text role="ref"} for more details.Features
#11871: Added support for reading command line arguments from a file using the prefix character
@
, like e.g.:pytest @tests.txt
. The file must have one argument per line.See
Read arguments from file <args-from-file>
{.interpreted-text role="ref"} for details.Improvements
#11523:
pytest.importorskip
{.interpreted-text role="func"} will now issue a warning if the module could be found, but raisedImportError
{.interpreted-text role="class"} instead ofModuleNotFoundError
{.interpreted-text role="class"}.The warning can be suppressed by passing
exc_type=ImportError
topytest.importorskip
{.interpreted-text role="func"}.See
import-or-skip-import-error
{.interpreted-text role="ref"} for details.#11728: For
unittest
-based tests, exceptions during class cleanup (as raised by functions registered withTestCase.addClassCleanup <unittest.TestCase.addClassCleanup>
{.interpreted-text role="meth"}) are now reported instead of silently failing.#11777: Text is no longer truncated in the
short test summary info
section when-vv
is given.#12112: Improved namespace packages detection when
consider_namespace_packages
{.interpreted-text role="confval"} is enabled, covering more situations (like editable installs).#9502: Added
PYTEST_VERSION
{.interpreted-text role="envvar"} environment variable which is defined at the start of the pytest session and undefined afterwards. It contains the value ofpytest.__version__
, and among other things can be used to easily check if code is running from within a pytest run.Bug Fixes
#12065: Fixed a regression in pytest 8.0.0 where test classes containing
setup_method
and tests using@staticmethod
or@classmethod
would crash withAttributeError: 'NoneType' object has no attribute 'setup_method'
.Now the
request.instance <pytest.FixtureRequest.instance>
{.interpreted-text role="attr"} attribute of tests using@staticmethod
and@classmethod
is no longerNone
, but a fresh instance of the class, like in non-static methods.
... (truncated)
6bd3f31
Tweak changelog for 8.2.09b6219b
Prepare release version 8.2.0835765c
Merge pull request #12130
from bluetech/fixtures-inline7e7503c
unittest: report class cleanup exceptions (#12250)882c4da
fixtures: inline fail_fixturefunc
2e8fb9f
fixtures: extract a _check_fixturedef
methodacf2971
fixtures: inline _getnextfixturedef
into
_get_active_fixturedef
3c77aec
fixtures: move "request" check earlyd217d68
fixtures: inline _compute_fixture_value
530be28
fixtures: use early return in _get_active_fixturedef