Prepare release 7.2.0 (cherry picked from commit ac4e3cced9fb1df60df271cce308f07713764857)
This commit is contained in:
parent
c1d2168df6
commit
5a040aef97
|
@ -1 +0,0 @@
|
||||||
Update :class:`pytest.PytestUnhandledCoroutineWarning` to a deprecation; it will raise an error in pytest 8.
|
|
|
@ -1 +0,0 @@
|
||||||
:data:`sys.stdin` now contains all expected methods of a file-like object when capture is enabled.
|
|
|
@ -1 +0,0 @@
|
||||||
:class:`~pytest.PytestReturnNotNoneWarning` is now a subclass of :class:`~pytest.PytestRemovedIn8Warning`: the plan is to make returning non-``None`` from tests an error in the future.
|
|
|
@ -1,5 +0,0 @@
|
||||||
``@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).
|
|
|
@ -1,3 +0,0 @@
|
||||||
Made ``_pytest.doctest.DoctestItem`` export ``pytest.DoctestItem`` for
|
|
||||||
type check and runtime purposes. Made `_pytest.doctest` use internal APIs
|
|
||||||
to avoid circular imports.
|
|
|
@ -1 +0,0 @@
|
||||||
Update information on writing plugins to use ``pyproject.toml`` instead of ``setup.py``.
|
|
|
@ -1 +0,0 @@
|
||||||
The ``--no-showlocals`` flag has been added. This can be passed directly to tests to override ``--showlocals`` declared through ``addopts``.
|
|
|
@ -1 +0,0 @@
|
||||||
Do not break into pdb when ``raise unittest.SkipTest()`` appears top-level in a file.
|
|
|
@ -1 +0,0 @@
|
||||||
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.
|
|
|
@ -1 +0,0 @@
|
||||||
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.
|
|
|
@ -1,4 +0,0 @@
|
||||||
Deprecate configuring hook specs/impls using attributes/marks.
|
|
||||||
|
|
||||||
Instead use :py:func:`pytest.hookimpl` and :py:func:`pytest.hookspec`.
|
|
||||||
For more details, see the :ref:`docs <legacy-path-hooks-deprecated>`.
|
|
|
@ -1 +0,0 @@
|
||||||
A warning is now emitted if a test function returns something other than `None`. This prevents a common mistake among beginners that expect that returning a `bool` (for example `return foo(a, b) == result`) would cause a test to pass or fail, instead of using `assert`.
|
|
|
@ -1,5 +0,0 @@
|
||||||
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` 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 :func:`pytest.Node.iter_markers` instead.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Introduce multiline display for warning matching via :py:func:`pytest.warns` and
|
|
||||||
enhance match comparison for :py:func:`_pytest._code.ExceptionInfo.match` as returned by :py:func:`pytest.raises`.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Improve :py:func:`pytest.raises`. Previously passing an empty tuple would give a confusing
|
|
||||||
error. We now raise immediately with a more helpful message.
|
|
|
@ -1 +0,0 @@
|
||||||
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``.
|
|
|
@ -1 +0,0 @@
|
||||||
The documentation is now built using Sphinx 5.x (up from 3.x previously).
|
|
|
@ -1 +0,0 @@
|
||||||
Update documentation on how :func:`pytest.warns` affects :class:`DeprecationWarning`.
|
|
|
@ -1,3 +0,0 @@
|
||||||
On Python 3.11, use the standard library's :mod:`tomllib` to parse TOML.
|
|
||||||
|
|
||||||
:mod:`tomli`` is no longer a dependency on Python 3.11.
|
|
|
@ -1 +0,0 @@
|
||||||
Display assertion message without escaped newline characters with ``-vv``.
|
|
|
@ -1 +0,0 @@
|
||||||
Improved error message that is shown when no collector is found for a given file.
|
|
|
@ -1 +0,0 @@
|
||||||
Some coloring has been added to the short test summary.
|
|
|
@ -1 +0,0 @@
|
||||||
Ensure ``caplog.get_records(when)`` returns current/correct data after invoking ``caplog.clear()``.
|
|
|
@ -1 +0,0 @@
|
||||||
Normalize the help description of all command-line options.
|
|
|
@ -1,10 +0,0 @@
|
||||||
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 <with-setup-nose>`_ decorator.
|
|
||||||
|
|
||||||
For more details, consult the :ref:`deprecation docs <nose-deprecation>`.
|
|
||||||
|
|
||||||
.. _`with-setup-nose`: https://nose.readthedocs.io/en/latest/testing_tools.html?highlight=with_setup#nose.tools.with_setup
|
|
|
@ -1 +0,0 @@
|
||||||
Added shell-style wildcard support to ``testpaths``.
|
|
|
@ -1 +0,0 @@
|
||||||
Made ``_pytest.compat`` re-export ``importlib_metadata`` in the eyes of type checkers.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix default encoding warning (``EncodingWarning``) in ``cacheprovider``
|
|
|
@ -1 +0,0 @@
|
||||||
Display full crash messages in ``short test summary info``, when runng in a CI environment.
|
|
|
@ -1,4 +0,0 @@
|
||||||
Improve the error message when we attempt to access a fixture that has been
|
|
||||||
torn down.
|
|
||||||
Add an additional sentence to the docstring explaining when it's not a good
|
|
||||||
idea to call getfixturevalue.
|
|
|
@ -1 +0,0 @@
|
||||||
Added support for hidden configuration file by allowing ``.pytest.ini`` as an alternative to ``pytest.ini``.
|
|
|
@ -6,6 +6,7 @@ Release announcements
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
|
||||||
|
release-7.2.0
|
||||||
release-7.1.3
|
release-7.1.3
|
||||||
release-7.1.2
|
release-7.1.2
|
||||||
release-7.1.1
|
release-7.1.1
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
pytest-7.2.0
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
The pytest team is proud to announce the 7.2.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:
|
||||||
|
|
||||||
|
* Aaron Berdy
|
||||||
|
* Adam Turner
|
||||||
|
* Albert Villanova del Moral
|
||||||
|
* Alice Purcell
|
||||||
|
* Anthony Sottile
|
||||||
|
* Anton Yakutovich
|
||||||
|
* Babak Keyvani
|
||||||
|
* Brandon Chinn
|
||||||
|
* Bruno Oliveira
|
||||||
|
* Chanvin Xiao
|
||||||
|
* Cheuk Ting Ho
|
||||||
|
* Chris Wheeler
|
||||||
|
* EmptyRabbit
|
||||||
|
* Ezio Melotti
|
||||||
|
* Florian Best
|
||||||
|
* Florian Bruhin
|
||||||
|
* Fredrik Berndtsson
|
||||||
|
* Gabriel Landau
|
||||||
|
* Gergely Kalmár
|
||||||
|
* Hugo van Kemenade
|
||||||
|
* James Gerity
|
||||||
|
* John Litborn
|
||||||
|
* Jon Parise
|
||||||
|
* Kevin C
|
||||||
|
* Kian Eliasi
|
||||||
|
* MatthewFlamm
|
||||||
|
* Miro Hrončok
|
||||||
|
* Nate Meyvis
|
||||||
|
* Neil Girdhar
|
||||||
|
* Nhieuvu1802
|
||||||
|
* Nipunn Koorapati
|
||||||
|
* Ofek Lev
|
||||||
|
* Paul Müller
|
||||||
|
* Paul Reece
|
||||||
|
* Pax
|
||||||
|
* Pete Baughman
|
||||||
|
* Peyman Salehi
|
||||||
|
* Philipp A
|
||||||
|
* Ran Benita
|
||||||
|
* Robert O'Shea
|
||||||
|
* Ronny Pfannschmidt
|
||||||
|
* Rowin
|
||||||
|
* Ruth Comer
|
||||||
|
* Samuel Colvin
|
||||||
|
* Samuel Gaist
|
||||||
|
* Sandro Tosi
|
||||||
|
* Shantanu
|
||||||
|
* Simon K
|
||||||
|
* Stephen Rosen
|
||||||
|
* Sviatoslav Sydorenko
|
||||||
|
* Tatiana Ovary
|
||||||
|
* Thierry Moisan
|
||||||
|
* Thomas Grainger
|
||||||
|
* Tim Hoffmann
|
||||||
|
* Tobias Diez
|
||||||
|
* Tony Narlock
|
||||||
|
* Vivaan Verma
|
||||||
|
* Wolfremium
|
||||||
|
* Zac Hatfield-Dodds
|
||||||
|
* Zach OBrien
|
||||||
|
* aizpurua23a
|
||||||
|
* gresm
|
||||||
|
* holesch
|
||||||
|
* itxasos23
|
||||||
|
* johnkangw
|
||||||
|
* skhomuti
|
||||||
|
* sommersoft
|
||||||
|
* wodny
|
||||||
|
* zx.qiu
|
||||||
|
|
||||||
|
|
||||||
|
Happy testing,
|
||||||
|
The pytest Development Team
|
|
@ -33,7 +33,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
|
|
||||||
Values can be any object handled by the json stdlib module.
|
Values can be any object handled by the json stdlib module.
|
||||||
|
|
||||||
capsys -- .../_pytest/capture.py:878
|
capsys -- .../_pytest/capture.py:905
|
||||||
Enable text capturing of writes to ``sys.stdout`` and ``sys.stderr``.
|
Enable text capturing of writes to ``sys.stdout`` and ``sys.stderr``.
|
||||||
|
|
||||||
The captured output is made available via ``capsys.readouterr()`` method
|
The captured output is made available via ``capsys.readouterr()`` method
|
||||||
|
@ -51,7 +51,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
captured = capsys.readouterr()
|
captured = capsys.readouterr()
|
||||||
assert captured.out == "hello\n"
|
assert captured.out == "hello\n"
|
||||||
|
|
||||||
capsysbinary -- .../_pytest/capture.py:906
|
capsysbinary -- .../_pytest/capture.py:933
|
||||||
Enable bytes capturing of writes to ``sys.stdout`` and ``sys.stderr``.
|
Enable bytes capturing of writes to ``sys.stdout`` and ``sys.stderr``.
|
||||||
|
|
||||||
The captured output is made available via ``capsysbinary.readouterr()``
|
The captured output is made available via ``capsysbinary.readouterr()``
|
||||||
|
@ -69,7 +69,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
captured = capsysbinary.readouterr()
|
captured = capsysbinary.readouterr()
|
||||||
assert captured.out == b"hello\n"
|
assert captured.out == b"hello\n"
|
||||||
|
|
||||||
capfd -- .../_pytest/capture.py:934
|
capfd -- .../_pytest/capture.py:961
|
||||||
Enable text capturing of writes to file descriptors ``1`` and ``2``.
|
Enable text capturing of writes to file descriptors ``1`` and ``2``.
|
||||||
|
|
||||||
The captured output is made available via ``capfd.readouterr()`` method
|
The captured output is made available via ``capfd.readouterr()`` method
|
||||||
|
@ -87,7 +87,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
captured = capfd.readouterr()
|
captured = capfd.readouterr()
|
||||||
assert captured.out == "hello\n"
|
assert captured.out == "hello\n"
|
||||||
|
|
||||||
capfdbinary -- .../_pytest/capture.py:962
|
capfdbinary -- .../_pytest/capture.py:989
|
||||||
Enable bytes capturing of writes to file descriptors ``1`` and ``2``.
|
Enable bytes capturing of writes to file descriptors ``1`` and ``2``.
|
||||||
|
|
||||||
The captured output is made available via ``capfd.readouterr()`` method
|
The captured output is made available via ``capfd.readouterr()`` method
|
||||||
|
@ -105,7 +105,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
captured = capfdbinary.readouterr()
|
captured = capfdbinary.readouterr()
|
||||||
assert captured.out == b"hello\n"
|
assert captured.out == b"hello\n"
|
||||||
|
|
||||||
doctest_namespace [session scope] -- .../_pytest/doctest.py:735
|
doctest_namespace [session scope] -- .../_pytest/doctest.py:738
|
||||||
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.
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
|
|
||||||
For more details: :ref:`doctest_namespace`.
|
For more details: :ref:`doctest_namespace`.
|
||||||
|
|
||||||
pytestconfig [session scope] -- .../_pytest/fixtures.py:1344
|
pytestconfig [session scope] -- .../_pytest/fixtures.py:1351
|
||||||
Session-scoped fixture that returns the session's :class:`pytest.Config`
|
Session-scoped fixture that returns the session's :class:`pytest.Config`
|
||||||
object.
|
object.
|
||||||
|
|
||||||
|
@ -163,7 +163,10 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
record_testsuite_property("ARCH", "PPC")
|
record_testsuite_property("ARCH", "PPC")
|
||||||
record_testsuite_property("STORAGE_TYPE", "CEPH")
|
record_testsuite_property("STORAGE_TYPE", "CEPH")
|
||||||
|
|
||||||
``name`` must be a string, ``value`` will be converted to a string and properly xml-escaped.
|
:param name:
|
||||||
|
The property name.
|
||||||
|
:param value:
|
||||||
|
The property value. Will be converted to a string.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
||||||
|
@ -193,7 +196,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:487
|
caplog -- .../_pytest/logging.py:491
|
||||||
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::
|
||||||
|
@ -228,16 +231,16 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
To undo modifications done by the fixture in a contained scope,
|
To undo modifications done by the fixture in a contained scope,
|
||||||
use :meth:`context() <pytest.MonkeyPatch.context>`.
|
use :meth:`context() <pytest.MonkeyPatch.context>`.
|
||||||
|
|
||||||
recwarn -- .../_pytest/recwarn.py:29
|
recwarn -- .../_pytest/recwarn.py:30
|
||||||
Return a :class:`WarningsRecorder` instance that records all warnings emitted by test functions.
|
Return a :class:`WarningsRecorder` instance that records all warnings emitted by test functions.
|
||||||
|
|
||||||
See https://docs.python.org/library/how-to/capture-warnings.html for information
|
See https://docs.pytest.org/en/latest/how-to/capture-warnings.html for information
|
||||||
on warning categories.
|
on warning categories.
|
||||||
|
|
||||||
tmp_path_factory [session scope] -- .../_pytest/tmpdir.py:184
|
tmp_path_factory [session scope] -- .../_pytest/tmpdir.py:188
|
||||||
Return a :class:`pytest.TempPathFactory` instance for the test session.
|
Return a :class:`pytest.TempPathFactory` instance for the test session.
|
||||||
|
|
||||||
tmp_path -- .../_pytest/tmpdir.py:199
|
tmp_path -- .../_pytest/tmpdir.py:203
|
||||||
Return a temporary directory path object which is unique to each test
|
Return a temporary directory path object which is unique to each test
|
||||||
function invocation, created as a sub directory of the base temporary
|
function invocation, created as a sub directory of the base temporary
|
||||||
directory.
|
directory.
|
||||||
|
|
|
@ -28,6 +28,154 @@ with advance notice in the **Deprecations** section of releases.
|
||||||
|
|
||||||
.. towncrier release notes start
|
.. towncrier release notes start
|
||||||
|
|
||||||
|
pytest 7.2.0 (2022-10-23)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Deprecations
|
||||||
|
------------
|
||||||
|
|
||||||
|
- `#10012 <https://github.com/pytest-dev/pytest/issues/10012>`_: Update :class:`pytest.PytestUnhandledCoroutineWarning` to a deprecation; it will raise an error in pytest 8.
|
||||||
|
|
||||||
|
|
||||||
|
- `#10396 <https://github.com/pytest-dev/pytest/issues/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 <https://github.com/pytest-dev/pytest/issues/4562>`_: Deprecate configuring hook specs/impls using attributes/marks.
|
||||||
|
|
||||||
|
Instead use :py:func:`pytest.hookimpl` and :py:func:`pytest.hookspec`.
|
||||||
|
For more details, see the :ref:`docs <legacy-path-hooks-deprecated>`.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9886 <https://github.com/pytest-dev/pytest/issues/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 <with-setup-nose>`_ decorator.
|
||||||
|
|
||||||
|
For more details, consult the :ref:`deprecation docs <nose-deprecation>`.
|
||||||
|
|
||||||
|
.. _`with-setup-nose`: https://nose.readthedocs.io/en/latest/testing_tools.html?highlight=with_setup#nose.tools.with_setup
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- `#9897 <https://github.com/pytest-dev/pytest/issues/9897>`_: Added shell-style wildcard support to ``testpaths``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Improvements
|
||||||
|
------------
|
||||||
|
|
||||||
|
- `#10218 <https://github.com/pytest-dev/pytest/issues/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 <https://github.com/pytest-dev/pytest/issues/10381>`_: The ``--no-showlocals`` flag has been added. This can be passed directly to tests to override ``--showlocals`` declared through ``addopts``.
|
||||||
|
|
||||||
|
|
||||||
|
- `#3426 <https://github.com/pytest-dev/pytest/issues/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 <https://github.com/pytest-dev/pytest/issues/7337>`_: A warning is now emitted if a test function returns something other than `None`. This prevents a common mistake among beginners that expect that returning a `bool` (for example `return foo(a, b) == result`) would cause a test to pass or fail, instead of using `assert`.
|
||||||
|
|
||||||
|
|
||||||
|
- `#8508 <https://github.com/pytest-dev/pytest/issues/8508>`_: Introduce multiline display for warning matching via :py:func:`pytest.warns` and
|
||||||
|
enhance match comparison for :py:func:`_pytest._code.ExceptionInfo.match` as returned by :py:func:`pytest.raises`.
|
||||||
|
|
||||||
|
|
||||||
|
- `#8646 <https://github.com/pytest-dev/pytest/issues/8646>`_: Improve :py:func:`pytest.raises`. Previously passing an empty tuple would give a confusing
|
||||||
|
error. We now raise immediately with a more helpful message.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9741 <https://github.com/pytest-dev/pytest/issues/9741>`_: On Python 3.11, use the standard library's :mod:`tomllib` to parse TOML.
|
||||||
|
|
||||||
|
:mod:`tomli`` is no longer a dependency on Python 3.11.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9742 <https://github.com/pytest-dev/pytest/issues/9742>`_: Display assertion message without escaped newline characters with ``-vv``.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9823 <https://github.com/pytest-dev/pytest/issues/9823>`_: Improved error message that is shown when no collector is found for a given file.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9873 <https://github.com/pytest-dev/pytest/issues/9873>`_: Some coloring has been added to the short test summary.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9883 <https://github.com/pytest-dev/pytest/issues/9883>`_: Normalize the help description of all command-line options.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9920 <https://github.com/pytest-dev/pytest/issues/9920>`_: Display full crash messages in ``short test summary info``, when runng in a CI environment.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9987 <https://github.com/pytest-dev/pytest/issues/9987>`_: Added support for hidden configuration file by allowing ``.pytest.ini`` as an alternative to ``pytest.ini``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bug Fixes
|
||||||
|
---------
|
||||||
|
|
||||||
|
- `#10150 <https://github.com/pytest-dev/pytest/issues/10150>`_: :data:`sys.stdin` now contains all expected methods of a file-like object when capture is enabled.
|
||||||
|
|
||||||
|
|
||||||
|
- `#10382 <https://github.com/pytest-dev/pytest/issues/10382>`_: Do not break into pdb when ``raise unittest.SkipTest()`` appears top-level in a file.
|
||||||
|
|
||||||
|
|
||||||
|
- `#7792 <https://github.com/pytest-dev/pytest/issues/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` 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 :func:`pytest.Node.iter_markers` instead.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9159 <https://github.com/pytest-dev/pytest/issues/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 <https://github.com/pytest-dev/pytest/issues/9877>`_: Ensure ``caplog.get_records(when)`` returns current/correct data after invoking ``caplog.clear()``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Improved Documentation
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
- `#10344 <https://github.com/pytest-dev/pytest/issues/10344>`_: Update information on writing plugins to use ``pyproject.toml`` instead of ``setup.py``.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9248 <https://github.com/pytest-dev/pytest/issues/9248>`_: The documentation is now built using Sphinx 5.x (up from 3.x previously).
|
||||||
|
|
||||||
|
|
||||||
|
- `#9291 <https://github.com/pytest-dev/pytest/issues/9291>`_: Update documentation on how :func:`pytest.warns` affects :class:`DeprecationWarning`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Trivial/Internal Changes
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- `#10196 <https://github.com/pytest-dev/pytest/issues/10196>`_: :class:`~pytest.PytestReturnNotNoneWarning` is now a subclass of :class:`~pytest.PytestRemovedIn8Warning`: the plan is to make returning non-``None`` from tests an error in the future.
|
||||||
|
|
||||||
|
|
||||||
|
- `#10313 <https://github.com/pytest-dev/pytest/issues/10313>`_: Made ``_pytest.doctest.DoctestItem`` export ``pytest.DoctestItem`` for
|
||||||
|
type check and runtime purposes. Made `_pytest.doctest` use internal APIs
|
||||||
|
to avoid circular imports.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9906 <https://github.com/pytest-dev/pytest/issues/9906>`_: Made ``_pytest.compat`` re-export ``importlib_metadata`` in the eyes of type checkers.
|
||||||
|
|
||||||
|
|
||||||
|
- `#9910 <https://github.com/pytest-dev/pytest/issues/9910>`_: Fix default encoding warning (``EncodingWarning``) in ``cacheprovider``
|
||||||
|
|
||||||
|
|
||||||
|
- `#9984 <https://github.com/pytest-dev/pytest/issues/9984>`_: Improve the error message when we attempt to access a fixture that has been
|
||||||
|
torn down.
|
||||||
|
Add an additional sentence to the docstring explaining when it's not a good
|
||||||
|
idea to call getfixturevalue.
|
||||||
|
|
||||||
|
|
||||||
pytest 7.1.3 (2022-08-31)
|
pytest 7.1.3 (2022-08-31)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
|
@ -246,9 +246,9 @@ You can ask which markers exist for your test suite - the list includes our just
|
||||||
|
|
||||||
@pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see https://docs.pytest.org/en/stable/explanation/fixtures.html#usefixtures
|
@pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see https://docs.pytest.org/en/stable/explanation/fixtures.html#usefixtures
|
||||||
|
|
||||||
@pytest.mark.tryfirst: mark a hook implementation function such that the plugin machinery will try to call it first/as early as possible.
|
@pytest.mark.tryfirst: mark a hook implementation function such that the plugin machinery will try to call it first/as early as possible. DEPRECATED, use @pytest.hookimpl(tryfirst=True) instead.
|
||||||
|
|
||||||
@pytest.mark.trylast: mark a hook implementation function such that the plugin machinery will try to call it last/as late as possible.
|
@pytest.mark.trylast: mark a hook implementation function such that the plugin machinery will try to call it last/as late as possible. DEPRECATED, use @pytest.hookimpl(trylast=True) instead.
|
||||||
|
|
||||||
|
|
||||||
For an example on how to add and work with markers from a plugin, see
|
For an example on how to add and work with markers from a plugin, see
|
||||||
|
@ -438,9 +438,9 @@ The ``--markers`` option always gives you a list of available markers:
|
||||||
|
|
||||||
@pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see https://docs.pytest.org/en/stable/explanation/fixtures.html#usefixtures
|
@pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see https://docs.pytest.org/en/stable/explanation/fixtures.html#usefixtures
|
||||||
|
|
||||||
@pytest.mark.tryfirst: mark a hook implementation function such that the plugin machinery will try to call it first/as early as possible.
|
@pytest.mark.tryfirst: mark a hook implementation function such that the plugin machinery will try to call it first/as early as possible. DEPRECATED, use @pytest.hookimpl(tryfirst=True) instead.
|
||||||
|
|
||||||
@pytest.mark.trylast: mark a hook implementation function such that the plugin machinery will try to call it last/as late as possible.
|
@pytest.mark.trylast: mark a hook implementation function such that the plugin machinery will try to call it last/as late as possible. DEPRECATED, use @pytest.hookimpl(trylast=True) instead.
|
||||||
|
|
||||||
|
|
||||||
.. _`passing callables to custom markers`:
|
.. _`passing callables to custom markers`:
|
||||||
|
@ -611,7 +611,7 @@ then you will see two tests skipped and two executed tests as expected:
|
||||||
test_plat.py s.s. [100%]
|
test_plat.py s.s. [100%]
|
||||||
|
|
||||||
========================= short test summary info ==========================
|
========================= short test summary info ==========================
|
||||||
SKIPPED [2] conftest.py:12: cannot run on platform linux
|
SKIPPED [2] conftest.py:13: cannot run on platform linux
|
||||||
======================= 2 passed, 2 skipped in 0.12s =======================
|
======================= 2 passed, 2 skipped in 0.12s =======================
|
||||||
|
|
||||||
Note that if you specify a platform via the marker-command line option like this:
|
Note that if you specify a platform via the marker-command line option like this:
|
||||||
|
|
|
@ -661,8 +661,7 @@ If we run this:
|
||||||
|
|
||||||
test_step.py:11: AssertionError
|
test_step.py:11: AssertionError
|
||||||
========================= short test summary info ==========================
|
========================= short test summary info ==========================
|
||||||
XFAIL test_step.py::TestUserHandling::test_deletion
|
XFAIL test_step.py::TestUserHandling::test_deletion - reason: previous test failed (test_modification)
|
||||||
reason: previous test failed (test_modification)
|
|
||||||
================== 1 failed, 2 passed, 1 xfailed in 0.12s ==================
|
================== 1 failed, 2 passed, 1 xfailed in 0.12s ==================
|
||||||
|
|
||||||
We'll see that ``test_deletion`` was not executed because ``test_modification``
|
We'll see that ``test_deletion`` was not executed because ``test_modification``
|
||||||
|
|
|
@ -22,7 +22,7 @@ Install ``pytest``
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ pytest --version
|
$ pytest --version
|
||||||
pytest 7.1.3
|
pytest 7.2.0
|
||||||
|
|
||||||
.. _`simpletest`:
|
.. _`simpletest`:
|
||||||
|
|
||||||
|
|
|
@ -233,7 +233,7 @@ If you run this command for the first time, you can see the print statement:
|
||||||
> assert mydata == 23
|
> assert mydata == 23
|
||||||
E assert 42 == 23
|
E assert 42 == 23
|
||||||
|
|
||||||
test_caching.py:20: AssertionError
|
test_caching.py:19: AssertionError
|
||||||
-------------------------- Captured stdout setup ---------------------------
|
-------------------------- Captured stdout setup ---------------------------
|
||||||
running expensive computation...
|
running expensive computation...
|
||||||
========================= short test summary info ==========================
|
========================= short test summary info ==========================
|
||||||
|
@ -256,7 +256,7 @@ the cache and nothing will be printed:
|
||||||
> assert mydata == 23
|
> assert mydata == 23
|
||||||
E assert 42 == 23
|
E assert 42 == 23
|
||||||
|
|
||||||
test_caching.py:20: AssertionError
|
test_caching.py:19: AssertionError
|
||||||
========================= short test summary info ==========================
|
========================= short test summary info ==========================
|
||||||
FAILED test_caching.py::test_function - assert 42 == 23
|
FAILED test_caching.py::test_function - assert 42 == 23
|
||||||
1 failed in 0.12s
|
1 failed in 0.12s
|
||||||
|
|
|
@ -349,8 +349,7 @@ Example:
|
||||||
test_example.py:14: AssertionError
|
test_example.py:14: AssertionError
|
||||||
========================= short test summary info ==========================
|
========================= short test summary info ==========================
|
||||||
SKIPPED [1] test_example.py:22: skipping this test
|
SKIPPED [1] test_example.py:22: skipping this test
|
||||||
XFAIL test_example.py::test_xfail
|
XFAIL test_example.py::test_xfail - reason: xfailing this test
|
||||||
reason: xfailing this test
|
|
||||||
XPASS test_example.py::test_xpass always xfail
|
XPASS test_example.py::test_xpass always xfail
|
||||||
ERROR test_example.py::test_error - assert 0
|
ERROR test_example.py::test_error - assert 0
|
||||||
FAILED test_example.py::test_fail - assert 0
|
FAILED test_example.py::test_fail - assert 0
|
||||||
|
|
|
@ -157,7 +157,7 @@ the ``self.db`` values in the traceback:
|
||||||
E AssertionError: <conftest.db_class.<locals>.DummyDB object at 0xdeadbeef0001>
|
E AssertionError: <conftest.db_class.<locals>.DummyDB object at 0xdeadbeef0001>
|
||||||
E assert 0
|
E assert 0
|
||||||
|
|
||||||
test_unittest_db.py:10: AssertionError
|
test_unittest_db.py:11: AssertionError
|
||||||
___________________________ MyTest.test_method2 ____________________________
|
___________________________ MyTest.test_method2 ____________________________
|
||||||
|
|
||||||
self = <test_unittest_db.MyTest testMethod=test_method2>
|
self = <test_unittest_db.MyTest testMethod=test_method2>
|
||||||
|
@ -167,7 +167,7 @@ the ``self.db`` values in the traceback:
|
||||||
E AssertionError: <conftest.db_class.<locals>.DummyDB object at 0xdeadbeef0001>
|
E AssertionError: <conftest.db_class.<locals>.DummyDB object at 0xdeadbeef0001>
|
||||||
E assert 0
|
E assert 0
|
||||||
|
|
||||||
test_unittest_db.py:13: AssertionError
|
test_unittest_db.py:14: AssertionError
|
||||||
========================= short test summary info ==========================
|
========================= short test summary info ==========================
|
||||||
FAILED test_unittest_db.py::MyTest::test_method1 - AssertionError: <conft...
|
FAILED test_unittest_db.py::MyTest::test_method1 - AssertionError: <conft...
|
||||||
FAILED test_unittest_db.py::MyTest::test_method2 - AssertionError: <conft...
|
FAILED test_unittest_db.py::MyTest::test_method2 - AssertionError: <conft...
|
||||||
|
|
|
@ -1759,12 +1759,12 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
$ pytest --help
|
$ pytest --help
|
||||||
usage: pytest [options] [file_or_dir] [file_or_dir] [...]
|
usage: pytest [options] [file_or_dir] [file_or_dir] [...]
|
||||||
|
|
||||||
Positional arguments:
|
positional arguments:
|
||||||
file_or_dir
|
file_or_dir
|
||||||
|
|
||||||
General:
|
general:
|
||||||
-k EXPRESSION Only run tests which match the given substring
|
-k EXPRESSION Only run tests which match the given substring
|
||||||
expression. An expression is a python evaluatable
|
expression. An expression is a Python evaluatable
|
||||||
expression where all names are substring-matched
|
expression where all names are substring-matched
|
||||||
against test names and their parent classes.
|
against test names and their parent classes.
|
||||||
Example: -k 'test_method or test_other' matches all
|
Example: -k 'test_method or test_other' matches all
|
||||||
|
@ -1778,9 +1778,9 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
'extra_keyword_matches' set, as well as functions
|
'extra_keyword_matches' set, as well as functions
|
||||||
which have names assigned directly to them. The
|
which have names assigned directly to them. The
|
||||||
matching is case-insensitive.
|
matching is case-insensitive.
|
||||||
-m MARKEXPR Only run tests matching given mark expression.
|
-m MARKEXPR Only run tests matching given mark expression. For
|
||||||
For example: -m 'mark1 and not mark2'.
|
example: -m 'mark1 and not mark2'.
|
||||||
--markers Show markers (builtin, plugin and per-project ones)
|
--markers show markers (builtin, plugin and per-project ones).
|
||||||
-x, --exitfirst Exit instantly on first error or failed test
|
-x, --exitfirst Exit instantly on first error or failed test
|
||||||
--fixtures, --funcargs
|
--fixtures, --funcargs
|
||||||
Show available fixtures, sorted by plugin appearance
|
Show available fixtures, sorted by plugin appearance
|
||||||
|
@ -1790,18 +1790,18 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
KeyboardInterrupt
|
KeyboardInterrupt
|
||||||
--pdbcls=modulename:classname
|
--pdbcls=modulename:classname
|
||||||
Specify a custom interactive Python debugger for use
|
Specify a custom interactive Python debugger for use
|
||||||
with --pdb. For example:
|
with --pdb.For example:
|
||||||
--pdbcls=IPython.terminal.debugger:TerminalPdb
|
--pdbcls=IPython.terminal.debugger:TerminalPdb
|
||||||
--trace Immediately break when running each test
|
--trace Immediately break when running each test
|
||||||
--capture=method Per-test capturing method: one of fd|sys|no|tee-sys.
|
--capture=method Per-test capturing method: one of fd|sys|no|tee-sys
|
||||||
-s Shortcut for --capture=no.
|
-s Shortcut for --capture=no
|
||||||
--runxfail Report the results of xfail tests as if they were
|
--runxfail Report the results of xfail tests as if they were
|
||||||
not marked
|
not marked
|
||||||
--lf, --last-failed Rerun only the tests that failed at the last run (or
|
--lf, --last-failed Rerun only the tests that failed at the last run (or
|
||||||
all if none failed)
|
all if none failed)
|
||||||
--ff, --failed-first Run all tests, but run the last failures first
|
--ff, --failed-first Run all tests, but run the last failures first. This
|
||||||
This may re-order tests and thus lead to repeated
|
may re-order tests and thus lead to repeated fixture
|
||||||
fixture setup/teardown
|
setup/teardown.
|
||||||
--nf, --new-first Run tests from new files first, then the rest of the
|
--nf, --new-first Run tests from new files first, then the rest of the
|
||||||
tests sorted by file mtime
|
tests sorted by file mtime
|
||||||
--cache-show=[CACHESHOW]
|
--cache-show=[CACHESHOW]
|
||||||
|
@ -1815,11 +1815,10 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
test next time
|
test next time
|
||||||
--sw-skip, --stepwise-skip
|
--sw-skip, --stepwise-skip
|
||||||
Ignore the first failing test but stop on the next
|
Ignore the first failing test but stop on the next
|
||||||
failing test.
|
failing test. Implicitly enables --stepwise.
|
||||||
implicitly enables --stepwise.
|
|
||||||
|
|
||||||
Reporting:
|
Reporting:
|
||||||
--durations=N show N slowest setup/test durations (N=0 for all)
|
--durations=N Show N slowest setup/test durations (N=0 for all)
|
||||||
--durations-min=N Minimal duration in seconds for inclusion in slowest
|
--durations-min=N Minimal duration in seconds for inclusion in slowest
|
||||||
list. Default: 0.005.
|
list. Default: 0.005.
|
||||||
-v, --verbose Increase verbosity
|
-v, --verbose Increase verbosity
|
||||||
|
@ -1836,8 +1835,10 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
--disable-warnings, --disable-pytest-warnings
|
--disable-warnings, --disable-pytest-warnings
|
||||||
Disable warnings summary
|
Disable warnings summary
|
||||||
-l, --showlocals Show locals in tracebacks (disabled by default)
|
-l, --showlocals Show locals in tracebacks (disabled by default)
|
||||||
|
--no-showlocals Hide locals in tracebacks (negate --showlocals
|
||||||
|
passed through addopts)
|
||||||
--tb=style Traceback print mode
|
--tb=style Traceback print mode
|
||||||
(auto/long/short/line/native/no).
|
(auto/long/short/line/native/no)
|
||||||
--show-capture={no,stdout,stderr,log,all}
|
--show-capture={no,stdout,stderr,log,all}
|
||||||
Controls how captured stdout/stderr/log is shown on
|
Controls how captured stdout/stderr/log is shown on
|
||||||
failed tests. Default: all.
|
failed tests. Default: all.
|
||||||
|
@ -1863,15 +1864,14 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
-c file Load configuration from `file` instead of trying to
|
-c file Load configuration from `file` instead of trying to
|
||||||
locate one of the implicit configuration files
|
locate one of the implicit configuration files
|
||||||
--continue-on-collection-errors
|
--continue-on-collection-errors
|
||||||
Force test execution even if collection errors
|
Force test execution even if collection errors occur
|
||||||
occur
|
|
||||||
--rootdir=ROOTDIR Define root directory for tests. Can be relative
|
--rootdir=ROOTDIR Define root directory for tests. Can be relative
|
||||||
path: 'root_dir', './root_dir',
|
path: 'root_dir', './root_dir',
|
||||||
'root_dir/another_dir/'; absolute path:
|
'root_dir/another_dir/'; absolute path:
|
||||||
'/home/user/root_dir'; path with variables:
|
'/home/user/root_dir'; path with variables:
|
||||||
'$HOME/root_dir'.
|
'$HOME/root_dir'.
|
||||||
|
|
||||||
Collection:
|
collection:
|
||||||
--collect-only, --co Only collect tests, don't execute them
|
--collect-only, --co Only collect tests, don't execute them
|
||||||
--pyargs Try to interpret all arguments as Python packages
|
--pyargs Try to interpret all arguments as Python packages
|
||||||
--ignore=path Ignore path during collection (multi-allowed)
|
--ignore=path Ignore path during collection (multi-allowed)
|
||||||
|
@ -1899,27 +1899,24 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
For a given doctest, continue to run after the first
|
For a given doctest, continue to run after the first
|
||||||
failure
|
failure
|
||||||
|
|
||||||
Test session debugging and configuration:
|
test session debugging and configuration:
|
||||||
--basetemp=dir Base temporary directory for this test run. (Warning:
|
--basetemp=dir Base temporary directory for this test run.
|
||||||
this directory is removed if it exists.)
|
(Warning: this directory is removed if it exists.)
|
||||||
-V, --version Display pytest version and information about
|
-V, --version Display pytest version and information about
|
||||||
plugins. When given twice, also display information
|
plugins. When given twice, also display information
|
||||||
about plugins.
|
about plugins.
|
||||||
-h, --help Show help message and configuration info
|
-h, --help Show help message and configuration info
|
||||||
-p name Early-load given plugin module name or entry point
|
-p name Early-load given plugin module name or entry point
|
||||||
(multi-allowed)
|
(multi-allowed). To avoid loading of plugins, use
|
||||||
To avoid loading of plugins, use the `no:` prefix,
|
the `no:` prefix, e.g. `no:doctest`.
|
||||||
e.g. `no:doctest`
|
|
||||||
--trace-config Trace considerations of conftest.py files
|
--trace-config Trace considerations of conftest.py files
|
||||||
--debug=[DEBUG_FILE_NAME]
|
--debug=[DEBUG_FILE_NAME]
|
||||||
Store internal tracing debug information in this log
|
Store internal tracing debug information in this log
|
||||||
file.
|
file. This file is opened with 'w' and truncated as
|
||||||
This file is opened with 'w' and truncated as a
|
a result, care advised. Default: pytestdebug.log.
|
||||||
result, care advised.
|
|
||||||
Default: pytestdebug.log.
|
|
||||||
-o OVERRIDE_INI, --override-ini=OVERRIDE_INI
|
-o OVERRIDE_INI, --override-ini=OVERRIDE_INI
|
||||||
Override ini option with "option=value" style, e.g.
|
Override ini option with "option=value" style, e.g.
|
||||||
`-o xfail_strict=True -o cache_dir=cache`
|
`-o xfail_strict=True -o cache_dir=cache`.
|
||||||
--assert=MODE Control assertion debugging tools.
|
--assert=MODE Control assertion debugging tools.
|
||||||
'plain' performs no assertion debugging.
|
'plain' performs no assertion debugging.
|
||||||
'rewrite' (the default) rewrites assert statements
|
'rewrite' (the default) rewrites assert statements
|
||||||
|
@ -1930,11 +1927,11 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
--setup-plan Show what fixtures and tests would be executed but
|
--setup-plan Show what fixtures and tests would be executed but
|
||||||
don't execute anything
|
don't execute anything
|
||||||
|
|
||||||
Logging:
|
logging:
|
||||||
--log-level=LEVEL Level of messages to catch/display.
|
--log-level=LEVEL Level of messages to catch/display. Not set by
|
||||||
Not set by default, so it depends on the root/parent
|
default, so it depends on the root/parent log
|
||||||
log handler's effective level, where it is "WARNING"
|
handler's effective level, where it is "WARNING" by
|
||||||
by default.
|
default.
|
||||||
--log-format=LOG_FORMAT
|
--log-format=LOG_FORMAT
|
||||||
Log format used by the logging module
|
Log format used by the logging module
|
||||||
--log-date-format=LOG_DATE_FORMAT
|
--log-date-format=LOG_DATE_FORMAT
|
||||||
|
@ -1963,7 +1960,7 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
Default marker for empty parametersets
|
Default marker for empty parametersets
|
||||||
norecursedirs (args): Directory patterns to avoid for recursion
|
norecursedirs (args): Directory patterns to avoid for recursion
|
||||||
testpaths (args): Directories to search for tests when no files or
|
testpaths (args): Directories to search for tests when no files or
|
||||||
directories are given in the command line
|
directories are given on the command line
|
||||||
filterwarnings (linelist):
|
filterwarnings (linelist):
|
||||||
Each line specifies a pattern for
|
Each line specifies a pattern for
|
||||||
warnings.filterwarnings. Processed after
|
warnings.filterwarnings. Processed after
|
||||||
|
|
Loading…
Reference in New Issue