Merge pull request #9758 from pytest-dev/release-7.1.0
Prepare release 7.1.0 (cherry picked from commit 7d4d1ecde6cdc3feae9ee076ee5aab4e05393fa6)
This commit is contained in:
parent
d306ec0a7e
commit
d87e1e67dd
|
@ -1,3 +0,0 @@
|
||||||
Fixed test output for some data types where ``-v`` would show less information.
|
|
||||||
|
|
||||||
Also, when showing diffs for sequences, ``-q`` would produce full diffs instead of the expected diff.
|
|
|
@ -1,3 +0,0 @@
|
||||||
The deprecation of raising :class:`unittest.SkipTest` to skip collection of
|
|
||||||
tests during the pytest collection phase is reverted - this is now a supported
|
|
||||||
feature again.
|
|
|
@ -1,15 +0,0 @@
|
||||||
As per our policy, the following features have been deprecated in the 6.X series and are now
|
|
||||||
removed:
|
|
||||||
|
|
||||||
* ``pytest._fillfuncargs`` function.
|
|
||||||
|
|
||||||
* ``pytest_warning_captured`` hook - use ``pytest_warning_recorded`` instead.
|
|
||||||
|
|
||||||
* ``-k -foobar`` syntax - use ``-k 'not foobar'`` instead.
|
|
||||||
|
|
||||||
* ``-k foobar:`` syntax.
|
|
||||||
|
|
||||||
* ``pytest.collect`` module - import from ``pytest`` directly.
|
|
||||||
|
|
||||||
For more information consult
|
|
||||||
`Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`__ in the docs.
|
|
|
@ -1 +0,0 @@
|
||||||
pytest now avoids specialized assert formatting when it is detected that the default ``__eq__`` is overridden in ``attrs`` or ``dataclasses``.
|
|
|
@ -1 +0,0 @@
|
||||||
Dropped support for Python 3.6, which reached `end-of-life <https://devguide.python.org/#status-of-python-branches>`__ at 2021-12-23.
|
|
|
@ -1,10 +0,0 @@
|
||||||
Symbolic link components are no longer resolved in conftest paths.
|
|
||||||
This means that if a conftest appears twice in collection tree, using symlinks, it will be executed twice.
|
|
||||||
For example, given
|
|
||||||
|
|
||||||
tests/real/conftest.py
|
|
||||||
tests/real/test_it.py
|
|
||||||
tests/link -> tests/real
|
|
||||||
|
|
||||||
running ``pytest tests`` now imports the conftest twice, once as ``tests/real/conftest.py`` and once as ``tests/link/conftest.py``.
|
|
||||||
This is a fix to match a similar change made to test collection itself in pytest 6.0 (see :pull:`6523` for details).
|
|
|
@ -1 +0,0 @@
|
||||||
When ``-vv`` is given on command line, show skipping and xfail reasons in full instead of truncating them to fit the terminal width.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Fixed count of selected tests on terminal collection summary when there were errors or skipped modules.
|
|
||||||
|
|
||||||
If there were errors or skipped modules on collection, pytest would mistakenly subtract those from the selected count.
|
|
|
@ -1,4 +0,0 @@
|
||||||
More information about the location of resources that led Python to raise :class:`ResourceWarning` can now
|
|
||||||
be obtained by enabling :mod:`tracemalloc`.
|
|
||||||
|
|
||||||
See :ref:`resource-warnings` for more information.
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed regression where ``--import-mode=importlib`` used together with :envvar:`PYTHONPATH` or :confval:`pythonpath` would cause import errors in test suites.
|
|
|
@ -1,3 +0,0 @@
|
||||||
More types are now accepted in the ``ids`` argument to ``@pytest.mark.parametrize``.
|
|
||||||
Previously only `str`, `float`, `int` and `bool` were accepted;
|
|
||||||
now `bytes`, `complex`, `re.Pattern`, `Enum` and anything with a `__name__` are also accepted.
|
|
|
@ -1,3 +0,0 @@
|
||||||
:func:`pytest.approx` now raises a :class:`TypeError` when given an unordered sequence (such as :class:`set`).
|
|
||||||
|
|
||||||
Note that this implies that custom classes which only implement ``__iter__`` and ``__len__`` are no longer supported as they don't guarantee order.
|
|
|
@ -1 +0,0 @@
|
||||||
:fixture:`pytester` now requests a :fixture:`monkeypatch` fixture instead of creating one internally. This solves some issues with tests that involve pytest environment variables.
|
|
|
@ -1 +0,0 @@
|
||||||
Malformed ``pyproject.toml`` files now produce a clearer error message.
|
|
|
@ -6,6 +6,7 @@ Release announcements
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
|
||||||
|
release-7.1.0
|
||||||
release-7.0.1
|
release-7.0.1
|
||||||
release-7.0.0
|
release-7.0.0
|
||||||
release-7.0.0rc1
|
release-7.0.0rc1
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
pytest-7.1.0
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
The pytest team is proud to announce the 7.1.0 release!
|
||||||
|
|
||||||
|
This release contains new features, improvements, and bug fixes,
|
||||||
|
the full list of changes is available in the changelog:
|
||||||
|
|
||||||
|
https://docs.pytest.org/en/stable/changelog.html
|
||||||
|
|
||||||
|
For complete documentation, please visit:
|
||||||
|
|
||||||
|
https://docs.pytest.org/en/stable/
|
||||||
|
|
||||||
|
As usual, you can upgrade from PyPI via:
|
||||||
|
|
||||||
|
pip install -U pytest
|
||||||
|
|
||||||
|
Thanks to all of the contributors to this release:
|
||||||
|
|
||||||
|
* Akuli
|
||||||
|
* Andrew Svetlov
|
||||||
|
* Anthony Sottile
|
||||||
|
* Brett Holman
|
||||||
|
* Bruno Oliveira
|
||||||
|
* Chris NeJame
|
||||||
|
* Dan Alvizu
|
||||||
|
* Elijah DeLee
|
||||||
|
* Emmanuel Arias
|
||||||
|
* Fabian Egli
|
||||||
|
* Florian Bruhin
|
||||||
|
* Gabor Szabo
|
||||||
|
* Hasan Ramezani
|
||||||
|
* Hugo van Kemenade
|
||||||
|
* Kian Meng, Ang
|
||||||
|
* Kojo Idrissa
|
||||||
|
* Masaru Tsuchiyama
|
||||||
|
* Olga Matoula
|
||||||
|
* P. L. Lim
|
||||||
|
* Ran Benita
|
||||||
|
* Tobias Deiminger
|
||||||
|
* Yuval Shimon
|
||||||
|
* eduardo naufel schettino
|
||||||
|
* Éric
|
||||||
|
|
||||||
|
|
||||||
|
Happy testing,
|
||||||
|
The pytest Development Team
|
|
@ -65,7 +65,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
Fixture that returns a :py:class:`dict` that will be injected into the
|
Fixture that returns a :py:class:`dict` that will be injected into the
|
||||||
namespace of doctests.
|
namespace of doctests.
|
||||||
|
|
||||||
pytestconfig [session scope] -- .../_pytest/fixtures.py:1365
|
pytestconfig [session scope] -- .../_pytest/fixtures.py:1334
|
||||||
Session-scoped fixture that returns the session's :class:`pytest.Config`
|
Session-scoped fixture that returns the session's :class:`pytest.Config`
|
||||||
object.
|
object.
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
|
|
||||||
.. _legacy_path: https://py.readthedocs.io/en/latest/path.html
|
.. _legacy_path: https://py.readthedocs.io/en/latest/path.html
|
||||||
|
|
||||||
caplog -- .../_pytest/logging.py:483
|
caplog -- .../_pytest/logging.py:487
|
||||||
Access and control log capturing.
|
Access and control log capturing.
|
||||||
|
|
||||||
Captured logs are available through the following properties/methods::
|
Captured logs are available through the following properties/methods::
|
||||||
|
|
|
@ -28,6 +28,98 @@ with advance notice in the **Deprecations** section of releases.
|
||||||
|
|
||||||
.. towncrier release notes start
|
.. towncrier release notes start
|
||||||
|
|
||||||
|
pytest 7.1.0 (2022-03-13)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Breaking Changes
|
||||||
|
----------------
|
||||||
|
|
||||||
|
- `#8838 <https://github.com/pytest-dev/pytest/issues/8838>`_: As per our policy, the following features have been deprecated in the 6.X series and are now
|
||||||
|
removed:
|
||||||
|
|
||||||
|
* ``pytest._fillfuncargs`` function.
|
||||||
|
|
||||||
|
* ``pytest_warning_captured`` hook - use ``pytest_warning_recorded`` instead.
|
||||||
|
|
||||||
|
* ``-k -foobar`` syntax - use ``-k 'not foobar'`` instead.
|
||||||
|
|
||||||
|
* ``-k foobar:`` syntax.
|
||||||
|
|
||||||
|
* ``pytest.collect`` module - import from ``pytest`` directly.
|
||||||
|
|
||||||
|
For more information consult
|
||||||
|
`Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`__ in the docs.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9437 <https://github.com/pytest-dev/pytest/issues/9437>`_: Dropped support for Python 3.6, which reached `end-of-life <https://devguide.python.org/#status-of-python-branches>`__ at 2021-12-23.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Improvements
|
||||||
|
------------
|
||||||
|
|
||||||
|
- `#5192 <https://github.com/pytest-dev/pytest/issues/5192>`_: Fixed test output for some data types where ``-v`` would show less information.
|
||||||
|
|
||||||
|
Also, when showing diffs for sequences, ``-q`` would produce full diffs instead of the expected diff.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9362 <https://github.com/pytest-dev/pytest/issues/9362>`_: pytest now avoids specialized assert formatting when it is detected that the default ``__eq__`` is overridden in ``attrs`` or ``dataclasses``.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9536 <https://github.com/pytest-dev/pytest/issues/9536>`_: When ``-vv`` is given on command line, show skipping and xfail reasons in full instead of truncating them to fit the terminal width.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9644 <https://github.com/pytest-dev/pytest/issues/9644>`_: More information about the location of resources that led Python to raise :class:`ResourceWarning` can now
|
||||||
|
be obtained by enabling :mod:`tracemalloc`.
|
||||||
|
|
||||||
|
See :ref:`resource-warnings` for more information.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9678 <https://github.com/pytest-dev/pytest/issues/9678>`_: More types are now accepted in the ``ids`` argument to ``@pytest.mark.parametrize``.
|
||||||
|
Previously only `str`, `float`, `int` and `bool` were accepted;
|
||||||
|
now `bytes`, `complex`, `re.Pattern`, `Enum` and anything with a `__name__` are also accepted.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9692 <https://github.com/pytest-dev/pytest/issues/9692>`_: :func:`pytest.approx` now raises a :class:`TypeError` when given an unordered sequence (such as :class:`set`).
|
||||||
|
|
||||||
|
Note that this implies that custom classes which only implement ``__iter__`` and ``__len__`` are no longer supported as they don't guarantee order.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bug Fixes
|
||||||
|
---------
|
||||||
|
|
||||||
|
- `#8242 <https://github.com/pytest-dev/pytest/issues/8242>`_: The deprecation of raising :class:`unittest.SkipTest` to skip collection of
|
||||||
|
tests during the pytest collection phase is reverted - this is now a supported
|
||||||
|
feature again.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9493 <https://github.com/pytest-dev/pytest/issues/9493>`_: Symbolic link components are no longer resolved in conftest paths.
|
||||||
|
This means that if a conftest appears twice in collection tree, using symlinks, it will be executed twice.
|
||||||
|
For example, given
|
||||||
|
|
||||||
|
tests/real/conftest.py
|
||||||
|
tests/real/test_it.py
|
||||||
|
tests/link -> tests/real
|
||||||
|
|
||||||
|
running ``pytest tests`` now imports the conftest twice, once as ``tests/real/conftest.py`` and once as ``tests/link/conftest.py``.
|
||||||
|
This is a fix to match a similar change made to test collection itself in pytest 6.0 (see :pull:`6523` for details).
|
||||||
|
|
||||||
|
|
||||||
|
- `#9626 <https://github.com/pytest-dev/pytest/issues/9626>`_: Fixed count of selected tests on terminal collection summary when there were errors or skipped modules.
|
||||||
|
|
||||||
|
If there were errors or skipped modules on collection, pytest would mistakenly subtract those from the selected count.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9645 <https://github.com/pytest-dev/pytest/issues/9645>`_: Fixed regression where ``--import-mode=importlib`` used together with :envvar:`PYTHONPATH` or :confval:`pythonpath` would cause import errors in test suites.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9708 <https://github.com/pytest-dev/pytest/issues/9708>`_: :fixture:`pytester` now requests a :fixture:`monkeypatch` fixture instead of creating one internally. This solves some issues with tests that involve pytest environment variables.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9730 <https://github.com/pytest-dev/pytest/issues/9730>`_: Malformed ``pyproject.toml`` files now produce a clearer error message.
|
||||||
|
|
||||||
|
|
||||||
pytest 7.0.1 (2022-02-11)
|
pytest 7.0.1 (2022-02-11)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
|
@ -155,7 +155,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
|
||||||
> assert [0, 1, 2] == [0, 1, 3]
|
> assert [0, 1, 2] == [0, 1, 3]
|
||||||
E assert [0, 1, 2] == [0, 1, 3]
|
E assert [0, 1, 2] == [0, 1, 3]
|
||||||
E At index 2 diff: 2 != 3
|
E At index 2 diff: 2 != 3
|
||||||
E Use -v to get the full diff
|
E Use -v to get more diff
|
||||||
|
|
||||||
failure_demo.py:63: AssertionError
|
failure_demo.py:63: AssertionError
|
||||||
______________ TestSpecialisedExplanations.test_eq_list_long _______________
|
______________ TestSpecialisedExplanations.test_eq_list_long _______________
|
||||||
|
@ -168,7 +168,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
|
||||||
> assert a == b
|
> assert a == b
|
||||||
E assert [0, 0, 0, 0, 0, 0, ...] == [0, 0, 0, 0, 0, 0, ...]
|
E assert [0, 0, 0, 0, 0, 0, ...] == [0, 0, 0, 0, 0, 0, ...]
|
||||||
E At index 100 diff: 1 != 2
|
E At index 100 diff: 1 != 2
|
||||||
E Use -v to get the full diff
|
E Use -v to get more diff
|
||||||
|
|
||||||
failure_demo.py:68: AssertionError
|
failure_demo.py:68: AssertionError
|
||||||
_________________ TestSpecialisedExplanations.test_eq_dict _________________
|
_________________ TestSpecialisedExplanations.test_eq_dict _________________
|
||||||
|
@ -215,7 +215,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
|
||||||
> assert [1, 2] == [1, 2, 3]
|
> assert [1, 2] == [1, 2, 3]
|
||||||
E assert [1, 2] == [1, 2, 3]
|
E assert [1, 2] == [1, 2, 3]
|
||||||
E Right contains one more item: 3
|
E Right contains one more item: 3
|
||||||
E Use -v to get the full diff
|
E Use -v to get more diff
|
||||||
|
|
||||||
failure_demo.py:77: AssertionError
|
failure_demo.py:77: AssertionError
|
||||||
_________________ TestSpecialisedExplanations.test_in_list _________________
|
_________________ TestSpecialisedExplanations.test_in_list _________________
|
||||||
|
|
|
@ -22,7 +22,7 @@ Install ``pytest``
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ pytest --version
|
$ pytest --version
|
||||||
pytest 7.0.1
|
pytest 7.1.0
|
||||||
|
|
||||||
.. _`simpletest`:
|
.. _`simpletest`:
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,7 @@ if you run this module:
|
||||||
E '1'
|
E '1'
|
||||||
E Extra items in the right set:
|
E Extra items in the right set:
|
||||||
E '5'
|
E '5'
|
||||||
E Use -v to get the full diff
|
E Use -v to get more diff
|
||||||
|
|
||||||
test_assert2.py:4: AssertionError
|
test_assert2.py:4: AssertionError
|
||||||
========================= short test summary info ==========================
|
========================= short test summary info ==========================
|
||||||
|
|
|
@ -84,7 +84,7 @@ Executing pytest normally gives us this output (we are skipping the header to fo
|
||||||
> assert fruits1 == fruits2
|
> assert fruits1 == fruits2
|
||||||
E AssertionError: assert ['banana', 'a...elon', 'kiwi'] == ['banana', 'a...elon', 'kiwi']
|
E AssertionError: assert ['banana', 'a...elon', 'kiwi'] == ['banana', 'a...elon', 'kiwi']
|
||||||
E At index 2 diff: 'grapes' != 'orange'
|
E At index 2 diff: 'grapes' != 'orange'
|
||||||
E Use -v to get the full diff
|
E Use -v to get more diff
|
||||||
|
|
||||||
test_verbosity_example.py:8: AssertionError
|
test_verbosity_example.py:8: AssertionError
|
||||||
____________________________ test_numbers_fail _____________________________
|
____________________________ test_numbers_fail _____________________________
|
||||||
|
@ -99,7 +99,7 @@ Executing pytest normally gives us this output (we are skipping the header to fo
|
||||||
E {'1': 1, '2': 2, '3': 3, '4': 4}
|
E {'1': 1, '2': 2, '3': 3, '4': 4}
|
||||||
E Right contains 4 more items:
|
E Right contains 4 more items:
|
||||||
E {'10': 10, '20': 20, '30': 30, '40': 40}
|
E {'10': 10, '20': 20, '30': 30, '40': 40}
|
||||||
E Use -v to get the full diff
|
E Use -v to get more diff
|
||||||
|
|
||||||
test_verbosity_example.py:14: AssertionError
|
test_verbosity_example.py:14: AssertionError
|
||||||
___________________________ test_long_text_fail ____________________________
|
___________________________ test_long_text_fail ____________________________
|
||||||
|
|
Loading…
Reference in New Issue