Pytest

Latest version: v8.2.0

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

Scan your dependencies

Page 10 of 33

5.2.0

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

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

- :issue:`1682`: Passing arguments to pytest.fixture() as positional arguments is deprecated - pass them
as a keyword argument instead.



Features
--------

- :issue:`1682`: The ``scope`` parameter of ``pytest.fixture`` can now be a callable that receives
the fixture name and the ``config`` object as keyword-only parameters.
See :ref:`the docs <dynamic scope>` for more information.


- :issue:`5764`: New behavior of the ``--pastebin`` option: failures to connect to the pastebin server are reported, without failing the pytest run



Bug Fixes
---------

- :issue:`5806`: Fix "lexer" being used when uploading to bpaste.net from ``--pastebin`` to "text".


- :issue:`5884`: Fix ``--setup-only`` and ``--setup-show`` for custom pytest items.



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

- :issue:`5056`: The HelpFormatter uses ``py.io.get_terminal_width`` for better width detection.

5.1.3

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

Bug Fixes
---------

- :issue:`5807`: Fix pypy3.6 (nightly) on windows.


- :issue:`5811`: Handle ``--fulltrace`` correctly with ``pytest.raises``.


- :issue:`5819`: Windows: Fix regression with conftest whose qualified name contains uppercase
characters (introduced by 5792).

5.1.2

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

Bug Fixes
---------

- :issue:`2270`: Fixed ``self`` reference in function-scoped fixtures defined plugin classes: previously ``self``
would be a reference to a *test* class, not the *plugin* class.


- :issue:`570`: Fixed long standing issue where fixture scope was not respected when indirect fixtures were used during
parametrization.


- :issue:`5782`: Fix decoding error when printing an error response from ``--pastebin``.


- :issue:`5786`: Chained exceptions in test and collection reports are now correctly serialized, allowing plugins like
``pytest-xdist`` to display them properly.


- :issue:`5792`: Windows: Fix error that occurs in certain circumstances when loading
``conftest.py`` from a working directory that has casing other than the one stored
in the filesystem (e.g., ``c:\test`` instead of ``C:\test``).

5.1.1

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

Bug Fixes
---------

- :issue:`5751`: Fixed ``TypeError`` when importing pytest on Python 3.5.0 and 3.5.1.

5.1.0

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

Removals
--------

- :issue:`5180`: As per our policy, the following features have been deprecated in the 4.X series and are now
removed:

* ``Request.getfuncargvalue``: use ``Request.getfixturevalue`` instead.

* ``pytest.raises`` and ``pytest.warns`` no longer support strings as the second argument.

* ``message`` parameter of ``pytest.raises``.

* ``pytest.raises``, ``pytest.warns`` and ``ParameterSet.param`` now use native keyword-only
syntax. This might change the exception message from previous versions, but they still raise
``TypeError`` on unknown keyword arguments as before.

* ``pytest.config`` global variable.

* ``tmpdir_factory.ensuretemp`` method.

* ``pytest_logwarning`` hook.

* ``RemovedInPytest4Warning`` warning type.

* ``request`` is now a reserved name for fixtures.


For more information consult :std:doc:`deprecations` in the docs.


- :issue:`5565`: Removed unused support code for :pypi:`unittest2`.

The ``unittest2`` backport module is no longer
necessary since Python 3.3+, and the small amount of code in pytest to support it also doesn't seem
to be used: after removed, all tests still pass unchanged.

Although our policy is to introduce a deprecation period before removing any features or support
for third party libraries, because this code is apparently not used
at all (even if ``unittest2`` is used by a test suite executed by pytest), it was decided to
remove it in this release.

If you experience a regression because of this, please :issue:`file an issue <new>`.


- :issue:`5615`: ``pytest.fail``, ``pytest.xfail`` and ``pytest.skip`` no longer support bytes for the message argument.

This was supported for Python 2 where it was tempting to use ``"message"``
instead of ``u"message"``.

Python 3 code is unlikely to pass ``bytes`` to these functions. If you do,
please decode it to an ``str`` beforehand.



Features
--------

- :issue:`5564`: New ``Config.invocation_args`` attribute containing the unchanged arguments passed to ``pytest.main()``.


- :issue:`5576`: New :ref:`NUMBER <using doctest options>`
option for doctests to ignore irrelevant differences in floating-point numbers.
Inspired by Sébastien Boisgérault's `numtest <https://github.com/boisgera/numtest>`__
extension for doctest.



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

- :issue:`5471`: JUnit XML now includes a timestamp and hostname in the testsuite tag.


- :issue:`5707`: Time taken to run the test suite now includes a human-readable representation when it takes over
60 seconds, for example::

===== 2 failed in 102.70s (0:01:42) =====



Bug Fixes
---------

- :issue:`4344`: Fix RuntimeError/StopIteration when trying to collect package with "__init__.py" only.


- :issue:`5115`: Warnings issued during ``pytest_configure`` are explicitly not treated as errors, even if configured as such, because it otherwise completely breaks pytest.


- :issue:`5477`: The XML file produced by ``--junitxml`` now correctly contain a ``<testsuites>`` root element.


- :issue:`5524`: Fix issue where ``tmp_path`` and ``tmpdir`` would not remove directories containing files marked as read-only,
which could lead to pytest crashing when executed a second time with the ``--basetemp`` option.


- :issue:`5537`: Replace ``importlib_metadata`` backport with ``importlib.metadata`` from the
standard library on Python 3.8+.


- :issue:`5578`: Improve type checking for some exception-raising functions (``pytest.xfail``, ``pytest.skip``, etc)
so they provide better error messages when users meant to use marks (for example ``pytest.xfail``
instead of ``pytest.mark.xfail``).


- :issue:`5606`: Fixed internal error when test functions were patched with objects that cannot be compared
for truth values against others, like ``numpy`` arrays.


- :issue:`5634`: ``pytest.exit`` is now correctly handled in ``unittest`` cases.
This makes ``unittest`` cases handle ``quit`` from pytest's pdb correctly.


- :issue:`5650`: Improved output when parsing an ini configuration file fails.


- :issue:`5701`: Fix collection of ``staticmethod`` objects defined with ``functools.partial``.


- :issue:`5734`: Skip async generator test functions, and update the warning message to refer to ``async def`` functions.



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

- :issue:`5669`: Add docstring for ``Testdir.copy_example``.



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

- :issue:`5095`: XML files of the ``xunit2`` family are now validated against the schema by pytest's own test suite
to avoid future regressions.


- :issue:`5516`: Cache node splitting function which can improve collection performance in very large test suites.


- :issue:`5603`: Simplified internal ``SafeRepr`` class and removed some dead code.


- :issue:`5664`: When invoking pytest's own testsuite with ``PYTHONDONTWRITEBYTECODE=1``,
the ``test_xfail_handling`` test no longer fails.


- :issue:`5684`: Replace manual handling of ``OSError.errno`` in the codebase by new ``OSError`` subclasses (``PermissionError``, ``FileNotFoundError``, etc.).

5.0.1

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

Bug Fixes
---------

- :issue:`5479`: Improve quoting in ``raises`` match failure message.


- :issue:`5523`: Fixed using multiple short options together in the command-line (for example ``-vs``) in Python 3.8+.


- :issue:`5547`: ``--step-wise`` now handles ``xfail(strict=True)`` markers properly.



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

- :issue:`5517`: Improve "Declaring new hooks" section in chapter "Writing Plugins"

Page 10 of 33

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.