Pytest

Latest version: v8.2.2

Safety actively analyzes 638238 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 33

5.4.3

=========================

Bug Fixes
---------

- :issue:`6428`: Paths appearing in error messages are now correct in case the current working directory has
changed since the start of the session.


- :issue:`6755`: Support deleting paths longer than 260 characters on windows created inside tmpdir.


- :issue:`6956`: Prevent pytest from printing ConftestImportFailure traceback to stdout.


- :issue:`7150`: Prevent hiding the underlying exception when ``ConfTestImportFailure`` is raised.


- :issue:`7215`: Fix regression where running with ``--pdb`` would call the ``tearDown`` methods of ``unittest.TestCase``
subclasses for skipped tests.

5.4.2

=========================

Bug Fixes
---------

- :issue:`6871`: Fix crash with captured output when using the :fixture:`capsysbinary fixture <capsysbinary>`.


- :issue:`6924`: Ensure a ``unittest.IsolatedAsyncioTestCase`` is actually awaited.


- :issue:`6925`: Fix TerminalRepr instances to be hashable again.


- :issue:`6947`: Fix regression where functions registered with ``TestCase.addCleanup`` were not being called on test failures.


- :issue:`6951`: Allow users to still set the deprecated ``TerminalReporter.writer`` attribute.


- :issue:`6992`: Revert "tmpdir: clean up indirection via config for factories" 6767 as it breaks pytest-xdist.


- :issue:`7110`: Fixed regression: ``asyncbase.TestCase`` tests are executed correctly again.


- :issue:`7143`: Fix ``File.from_parent`` so it forwards extra keyword arguments to the constructor.


- :issue:`7145`: Classes with broken ``__getattribute__`` methods are displayed correctly during failures.


- :issue:`7180`: Fix ``_is_setup_py`` for files encoded differently than locale.

5.4.1

=========================

Bug Fixes
---------

- :issue:`6909`: Revert the change introduced by :pull:`6330`, which required all arguments to ``pytest.mark.parametrize`` to be explicitly defined in the function signature.

The intention of the original change was to remove what was expected to be an unintended/surprising behavior, but it turns out many people relied on it, so the restriction has been reverted.


- :issue:`6910`: Fix crash when plugins return an unknown stats while using the ``--reportlog`` option.

5.4.0

=========================

Breaking Changes
----------------

- :issue:`6316`: Matching of ``-k EXPRESSION`` to test names is now case-insensitive.


- :issue:`6443`: Plugins specified with ``-p`` are now loaded after internal plugins, which results in their hooks being called *before* the internal ones.

This makes the ``-p`` behavior consistent with ``PYTEST_PLUGINS``.


- :issue:`6637`: Removed the long-deprecated ``pytest_itemstart`` hook.

This hook has been marked as deprecated and not been even called by pytest for over 10 years now.


- :issue:`6673`: Reversed / fix meaning of "+/-" in error diffs. "-" means that something expected is missing in the result and "+" means that there are unexpected extras in the result.


- :issue:`6737`: The ``cached_result`` attribute of ``FixtureDef`` is now set to ``None`` when
the result is unavailable, instead of being deleted.

If your plugin performs checks like ``hasattr(fixturedef, 'cached_result')``,
for example in a ``pytest_fixture_post_finalizer`` hook implementation, replace
it with ``fixturedef.cached_result is not None``. If you ``del`` the attribute,
set it to ``None`` instead.



Deprecations
------------

- :issue:`3238`: Option ``--no-print-logs`` is deprecated and meant to be removed in a future release. If you use ``--no-print-logs``, please try out ``--show-capture`` and
provide feedback.

``--show-capture`` command-line option was added in ``pytest 3.5.0`` and allows to specify how to
display captured output when tests fail: ``no``, ``stdout``, ``stderr``, ``log`` or ``all`` (the default).


- :issue:`571`: Deprecate the unused/broken `pytest_collect_directory` hook.
It was misaligned since the removal of the ``Directory`` collector in 2010
and incorrect/unusable as soon as collection was split from test execution.


- :issue:`5975`: Deprecate using direct constructors for ``Nodes``.

Instead they are now constructed via ``Node.from_parent``.

This transitional mechanism enables us to untangle the very intensely
entangled ``Node`` relationships by enforcing more controlled creation/configuration patterns.

As part of this change, session/config are already disallowed parameters and as we work on the details we might need disallow a few more as well.

Subclasses are expected to use `super().from_parent` if they intend to expand the creation of `Nodes`.


- :issue:`6779`: The ``TerminalReporter.writer`` attribute has been deprecated and should no longer be used. This
was inadvertently exposed as part of the public API of that plugin and ties it too much
with ``py.io.TerminalWriter``.



Features
--------

- :issue:`4597`: New :ref:`--capture=tee-sys <capture-method>` option to allow both live printing and capturing of test output.


- :issue:`5712`: Now all arguments to ``pytest.mark.parametrize`` need to be explicitly declared in the function signature or via ``indirect``.
Previously it was possible to omit an argument if a fixture with the same name existed, which was just an accident of implementation and was not meant to be a part of the API.


- :issue:`6454`: Changed default for `-r` to `fE`, which displays failures and errors in the :ref:`short test summary <pytest.detailed_failed_tests_usage>`. `-rN` can be used to disable it (the old behavior).


- :issue:`6469`: New options have been added to the :confval:`junit_logging` option: ``log``, ``out-err``, and ``all``.


- :issue:`6834`: Excess warning summaries are now collapsed per file to ensure readable display of warning summaries.



Improvements
------------

- :issue:`1857`: ``pytest.mark.parametrize`` accepts integers for ``ids`` again, converting it to strings.


- :issue:`449`: Use "yellow" main color with any XPASSED tests.


- :issue:`4639`: Revert "A warning is now issued when assertions are made for ``None``".

The warning proved to be less useful than initially expected and had quite a
few false positive cases.


- :issue:`5686`: ``tmpdir_factory.mktemp`` now fails when given absolute and non-normalized paths.


- :issue:`5984`: The ``pytest_warning_captured`` hook now receives a ``location`` parameter with the code location that generated the warning.


- :issue:`6213`: pytester: the ``testdir`` fixture respects environment settings from the ``monkeypatch`` fixture for inner runs.


- :issue:`6247`: ``--fulltrace`` is honored with collection errors.


- :issue:`6384`: Make `--showlocals` work also with `--tb=short`.


- :issue:`6653`: Add support for matching lines consecutively with :class:`~pytest.LineMatcher`'s :func:`~pytest.LineMatcher.fnmatch_lines` and :func:`~pytest.LineMatcher.re_match_lines`.


- :issue:`6658`: Code is now highlighted in tracebacks when ``pygments`` is installed.

Users are encouraged to install ``pygments`` into their environment and provide feedback, because
the plan is to make ``pygments`` a regular dependency in the future.


- :issue:`6795`: Import usage error message with invalid `-o` option.


- :issue:`759`: ``pytest.mark.parametrize`` supports iterators and generators for ``ids``.



Bug Fixes
---------

- :issue:`310`: Add support for calling `pytest.xfail()` and `pytest.importorskip()` with doctests.


- :issue:`3823`: ``--trace`` now works with unittests.


- :issue:`4445`: Fixed some warning reports produced by pytest to point to the correct location of the warning in the user's code.


- :issue:`5301`: Fix ``--last-failed`` to collect new tests from files with known failures.


- :issue:`5928`: Report ``PytestUnknownMarkWarning`` at the level of the user's code, not ``pytest``'s.


- :issue:`5991`: Fix interaction with ``--pdb`` and unittests: do not use unittest's ``TestCase.debug()``.


- :issue:`6334`: Fix summary entries appearing twice when ``f/F`` and ``s/S`` report chars were used at the same time in the ``-r`` command-line option (for example ``-rFf``).

The upper case variants were never documented and the preferred form should be the lower case.


- :issue:`6409`: Fallback to green (instead of yellow) for non-last items without previous passes with colored terminal progress indicator.


- :issue:`6454`: `--disable-warnings` is honored with `-ra` and `-rA`.


- :issue:`6497`: Fix bug in the comparison of request key with cached key in fixture.

A construct ``if key == cached_key:`` can fail either because ``==`` is explicitly disallowed, or for, e.g., NumPy arrays, where the result of ``a == b`` cannot generally be converted to :class:`bool`.
The implemented fix replaces `==` with ``is``.


- :issue:`6557`: Make capture output streams ``.write()`` method return the same return value from original streams.


- :issue:`6566`: Fix ``EncodedFile.writelines`` to call the underlying buffer's ``writelines`` method.


- :issue:`6575`: Fix internal crash when ``faulthandler`` starts initialized
(for example with ``PYTHONFAULTHANDLER=1`` environment variable set) and ``faulthandler_timeout`` defined
in the configuration file.


- :issue:`6597`: Fix node ids which contain a parametrized empty-string variable.


- :issue:`6646`: Assertion rewriting hooks are (re)stored for the current item, which fixes them being still used after e.g. pytester's ``testdir.runpytest`` etc.


- :issue:`6660`: :py:func:`pytest.exit` is handled when emitted from the :hook:`pytest_sessionfinish` hook. This includes quitting from a debugger.


- :issue:`6752`: When :py:func:`pytest.raises` is used as a function (as opposed to a context manager),
a `match` keyword argument is now passed through to the tested function. Previously
it was swallowed and ignored (regression in pytest 5.1.0).


- :issue:`6801`: Do not display empty lines in between traceback for unexpected exceptions with doctests.


- :issue:`6802`: The :fixture:`testdir fixture <testdir>` works within doctests now.



Improved Documentation
----------------------

- :issue:`6696`: Add list of fixtures to start of fixture chapter.


- :issue:`6742`: Expand first sentence on fixtures into a paragraph.



Trivial/Internal Changes
------------------------

- :issue:`6404`: Remove usage of ``parser`` module, deprecated in Python 3.9.

5.3.5

=========================

Bug Fixes
---------

- :issue:`6517`: Fix regression in pytest 5.3.4 causing an INTERNALERROR due to a wrong assertion.

5.3.4

=========================

Bug Fixes
---------

- :issue:`6496`: Revert :issue:`6436`: unfortunately this change has caused a number of regressions in many suites,
so the team decided to revert this change and make a new release while we continue to look for a solution.

Page 8 of 33

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.