Merge pull request #12055 from bluetech/cherry-pick-release
Cherry-pick 8.1.0 release notes
This commit is contained in:
commit
71849cc05c
|
@ -1,3 +0,0 @@
|
||||||
:func:`pytest.warns` now validates that :func:`warnings.warn` was called with a `str` or a `Warning`.
|
|
||||||
Currently in Python it is possible to use other types, however this causes an exception when :func:`warnings.filterwarnings` is used to filter those warnings (see `CPython #103577 <https://github.com/python/cpython/issues/103577>`__ for a discussion).
|
|
||||||
While this can be considered a bug in CPython, we decided to put guards in pytest as the error message produced without this check in place is confusing.
|
|
|
@ -1,4 +0,0 @@
|
||||||
When using ``--override-ini`` for paths in invocations without a configuration file defined, the current working directory is used
|
|
||||||
as the relative directory.
|
|
||||||
|
|
||||||
Previoulsy this would raise an :class:`AssertionError`.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Added the new :confval:`consider_namespace_packages` configuration option, defaulting to ``False``.
|
|
||||||
|
|
||||||
If set to ``True``, pytest will attempt to identify modules that are part of `namespace packages <https://packaging.python.org/en/latest/guides/packaging-namespace-packages>`__ when importing modules.
|
|
|
@ -1,3 +0,0 @@
|
||||||
:ref:`--import-mode=importlib <import-mode-importlib>` now tries to import modules using the standard import mechanism (but still without changing :py:data:`sys.path`), falling back to importing modules directly only if that fails.
|
|
||||||
|
|
||||||
This means that installed packages will be imported under their canonical name if possible first, for example ``app.core.models``, instead of having the module name always be derived from their path (for example ``.env310.lib.site_packages.app.core.models``).
|
|
|
@ -1,2 +0,0 @@
|
||||||
Added the new :confval:`verbosity_test_cases` configuration option for fine-grained control of test execution verbosity.
|
|
||||||
See :ref:`Fine-grained verbosity <pytest.fine_grained_verbosity>` for more details.
|
|
|
@ -1,7 +0,0 @@
|
||||||
Some changes were made to private functions which may affect plugins which access them:
|
|
||||||
|
|
||||||
- ``FixtureManager._getautousenames()`` now takes a ``Node`` itself instead of the nodeid.
|
|
||||||
- ``FixtureManager.getfixturedefs()`` now takes the ``Node`` itself instead of the nodeid.
|
|
||||||
- The ``_pytest.nodes.iterparentnodeids()`` function is removed without replacement.
|
|
||||||
Prefer to traverse the node hierarchy itself instead.
|
|
||||||
If you really need to, copy the function from the previous pytest release.
|
|
|
@ -1 +0,0 @@
|
||||||
Documented the retention of temporary directories created using the ``tmp_path`` fixture in more detail.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Added the :func:`iter_parents() <_pytest.nodes.Node.iter_parents>` helper method on nodes.
|
|
||||||
It is similar to :func:`listchain <_pytest.nodes.Node.listchain>`, but goes from bottom to top, and returns an iterator, not a list.
|
|
|
@ -1 +0,0 @@
|
||||||
Added support for :data:`sys.last_exc` for post-mortem debugging on Python>=3.12.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Fixed a regression in pytest 8.0.0 that would cause test collection to fail due to permission errors when using ``--pyargs``.
|
|
||||||
|
|
||||||
This change improves the collection tree for tests specified using ``--pyargs``, see :pull:`12043` for a comparison with pytest 8.0 and <8.
|
|
|
@ -1 +0,0 @@
|
||||||
In case no other suitable candidates for configuration file are found, a ``pyproject.toml`` (even without a ``[tool.pytest.ini_options]`` table) will be considered as the configuration file and define the ``rootdir``.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Add ``--log-file-mode`` option to the logging plugin, enabling appending to log-files. This option accepts either ``"w"`` or ``"a"`` and defaults to ``"w"``.
|
|
||||||
|
|
||||||
Previously, the mode was hard-coded to be ``"w"`` which truncates the file before logging.
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed a regression in 8.0.1 whereby ``setup_module`` xunit-style fixtures are not executed when ``--doctest-modules`` is passed.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix the ``stacklevel`` used when warning about marks used on fixtures.
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed a regression in ``8.0.2`` where tests created using :fixture:`tmp_path` have been collected multiple times in CI under Windows.
|
|
|
@ -1,2 +0,0 @@
|
||||||
When multiple finalizers of a fixture raise an exception, now all exceptions are reported as an exception group.
|
|
||||||
Previously, only the first exception was reported.
|
|
|
@ -6,6 +6,7 @@ Release announcements
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
|
||||||
|
release-8.1.0
|
||||||
release-8.0.2
|
release-8.0.2
|
||||||
release-8.0.1
|
release-8.0.1
|
||||||
release-8.0.0
|
release-8.0.0
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
pytest-8.1.0
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
The pytest team is proud to announce the 8.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:
|
||||||
|
|
||||||
|
* Ben Brown
|
||||||
|
* Ben Leith
|
||||||
|
* Bruno Oliveira
|
||||||
|
* Clément Robert
|
||||||
|
* Dave Hall
|
||||||
|
* Dương Quốc Khánh
|
||||||
|
* Eero Vaher
|
||||||
|
* Eric Larson
|
||||||
|
* Fabian Sturm
|
||||||
|
* Faisal Fawad
|
||||||
|
* Florian Bruhin
|
||||||
|
* Franck Charras
|
||||||
|
* Joachim B Haga
|
||||||
|
* John Litborn
|
||||||
|
* Loïc Estève
|
||||||
|
* Marc Bresson
|
||||||
|
* Patrick Lannigan
|
||||||
|
* Pierre Sassoulas
|
||||||
|
* Ran Benita
|
||||||
|
* Reagan Lee
|
||||||
|
* Ronny Pfannschmidt
|
||||||
|
* Russell Martin
|
||||||
|
* clee2000
|
||||||
|
* donghui
|
||||||
|
* faph
|
||||||
|
* jakkdl
|
||||||
|
* mrbean-bremen
|
||||||
|
* robotherapist
|
||||||
|
* whysage
|
||||||
|
* woutdenolf
|
||||||
|
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
capsysbinary -- .../_pytest/capture.py:1007
|
capsysbinary -- .../_pytest/capture.py:1008
|
||||||
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()``
|
||||||
|
@ -50,7 +50,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:1034
|
capfd -- .../_pytest/capture.py:1035
|
||||||
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
|
||||||
|
@ -67,7 +67,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:1061
|
capfdbinary -- .../_pytest/capture.py:1062
|
||||||
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
|
||||||
|
@ -84,7 +84,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"
|
||||||
|
|
||||||
capsys -- .../_pytest/capture.py:980
|
capsys -- .../_pytest/capture.py:981
|
||||||
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
|
||||||
|
@ -101,7 +101,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"
|
||||||
|
|
||||||
doctest_namespace [session scope] -- .../_pytest/doctest.py:745
|
doctest_namespace [session scope] -- .../_pytest/doctest.py:737
|
||||||
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.
|
||||||
|
|
||||||
|
@ -115,7 +115,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:1354
|
pytestconfig [session scope] -- .../_pytest/fixtures.py:1346
|
||||||
Session-scoped fixture that returns the session's :class:`pytest.Config`
|
Session-scoped fixture that returns the session's :class:`pytest.Config`
|
||||||
object.
|
object.
|
||||||
|
|
||||||
|
@ -170,18 +170,18 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
`pytest-xdist <https://github.com/pytest-dev/pytest-xdist>`__ plugin. See
|
`pytest-xdist <https://github.com/pytest-dev/pytest-xdist>`__ plugin. See
|
||||||
:issue:`7767` for details.
|
:issue:`7767` for details.
|
||||||
|
|
||||||
tmpdir_factory [session scope] -- .../_pytest/legacypath.py:302
|
tmpdir_factory [session scope] -- .../_pytest/legacypath.py:317
|
||||||
Return a :class:`pytest.TempdirFactory` instance for the test session.
|
Return a :class:`pytest.TempdirFactory` instance for the test session.
|
||||||
|
|
||||||
tmpdir -- .../_pytest/legacypath.py:309
|
tmpdir -- .../_pytest/legacypath.py:324
|
||||||
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.
|
||||||
|
|
||||||
By default, a new base temporary directory is created each test session,
|
By default, a new base temporary directory is created each test session,
|
||||||
and old bases are removed after 3 sessions, to aid in debugging. If
|
and old bases are removed after 3 sessions, to aid in debugging. If
|
||||||
``--basetemp`` is used then it is cleared each session. See :ref:`base
|
``--basetemp`` is used then it is cleared each session. See
|
||||||
temporary directory`.
|
:ref:`temporary directory location and retention`.
|
||||||
|
|
||||||
The returned object is a `legacy_path`_ object.
|
The returned object is a `legacy_path`_ object.
|
||||||
|
|
||||||
|
@ -192,7 +192,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:594
|
caplog -- .../_pytest/logging.py:601
|
||||||
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::
|
||||||
|
@ -227,7 +227,7 @@ 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:32
|
recwarn -- .../_pytest/recwarn.py:31
|
||||||
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.pytest.org/en/latest/how-to/capture-warnings.html for information
|
See https://docs.pytest.org/en/latest/how-to/capture-warnings.html for information
|
||||||
|
@ -245,8 +245,8 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
|
||||||
and old bases are removed after 3 sessions, to aid in debugging.
|
and old bases are removed after 3 sessions, to aid in debugging.
|
||||||
This behavior can be configured with :confval:`tmp_path_retention_count` and
|
This behavior can be configured with :confval:`tmp_path_retention_count` and
|
||||||
:confval:`tmp_path_retention_policy`.
|
:confval:`tmp_path_retention_policy`.
|
||||||
If ``--basetemp`` is used then it is cleared each session. See :ref:`base
|
If ``--basetemp`` is used then it is cleared each session. See
|
||||||
temporary directory`.
|
:ref:`temporary directory location and retention`.
|
||||||
|
|
||||||
The returned object is a :class:`pathlib.Path` object.
|
The returned object is a :class:`pathlib.Path` object.
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,98 @@ with advance notice in the **Deprecations** section of releases.
|
||||||
|
|
||||||
.. towncrier release notes start
|
.. towncrier release notes start
|
||||||
|
|
||||||
|
pytest 8.1.0 (2024-03-03)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- `#11475 <https://github.com/pytest-dev/pytest/issues/11475>`_: Added the new :confval:`consider_namespace_packages` configuration option, defaulting to ``False``.
|
||||||
|
|
||||||
|
If set to ``True``, pytest will attempt to identify modules that are part of `namespace packages <https://packaging.python.org/en/latest/guides/packaging-namespace-packages>`__ when importing modules.
|
||||||
|
|
||||||
|
|
||||||
|
- `#11653 <https://github.com/pytest-dev/pytest/issues/11653>`_: Added the new :confval:`verbosity_test_cases` configuration option for fine-grained control of test execution verbosity.
|
||||||
|
See :ref:`Fine-grained verbosity <pytest.fine_grained_verbosity>` for more details.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Improvements
|
||||||
|
------------
|
||||||
|
|
||||||
|
- `#10865 <https://github.com/pytest-dev/pytest/issues/10865>`_: :func:`pytest.warns` now validates that :func:`warnings.warn` was called with a `str` or a `Warning`.
|
||||||
|
Currently in Python it is possible to use other types, however this causes an exception when :func:`warnings.filterwarnings` is used to filter those warnings (see `CPython #103577 <https://github.com/python/cpython/issues/103577>`__ for a discussion).
|
||||||
|
While this can be considered a bug in CPython, we decided to put guards in pytest as the error message produced without this check in place is confusing.
|
||||||
|
|
||||||
|
|
||||||
|
- `#11311 <https://github.com/pytest-dev/pytest/issues/11311>`_: When using ``--override-ini`` for paths in invocations without a configuration file defined, the current working directory is used
|
||||||
|
as the relative directory.
|
||||||
|
|
||||||
|
Previoulsy this would raise an :class:`AssertionError`.
|
||||||
|
|
||||||
|
|
||||||
|
- `#11475 <https://github.com/pytest-dev/pytest/issues/11475>`_: :ref:`--import-mode=importlib <import-mode-importlib>` now tries to import modules using the standard import mechanism (but still without changing :py:data:`sys.path`), falling back to importing modules directly only if that fails.
|
||||||
|
|
||||||
|
This means that installed packages will be imported under their canonical name if possible first, for example ``app.core.models``, instead of having the module name always be derived from their path (for example ``.env310.lib.site_packages.app.core.models``).
|
||||||
|
|
||||||
|
|
||||||
|
- `#11801 <https://github.com/pytest-dev/pytest/issues/11801>`_: Added the :func:`iter_parents() <_pytest.nodes.Node.iter_parents>` helper method on nodes.
|
||||||
|
It is similar to :func:`listchain <_pytest.nodes.Node.listchain>`, but goes from bottom to top, and returns an iterator, not a list.
|
||||||
|
|
||||||
|
|
||||||
|
- `#11850 <https://github.com/pytest-dev/pytest/issues/11850>`_: Added support for :data:`sys.last_exc` for post-mortem debugging on Python>=3.12.
|
||||||
|
|
||||||
|
|
||||||
|
- `#11962 <https://github.com/pytest-dev/pytest/issues/11962>`_: In case no other suitable candidates for configuration file are found, a ``pyproject.toml`` (even without a ``[tool.pytest.ini_options]`` table) will be considered as the configuration file and define the ``rootdir``.
|
||||||
|
|
||||||
|
|
||||||
|
- `#11978 <https://github.com/pytest-dev/pytest/issues/11978>`_: Add ``--log-file-mode`` option to the logging plugin, enabling appending to log-files. This option accepts either ``"w"`` or ``"a"`` and defaults to ``"w"``.
|
||||||
|
|
||||||
|
Previously, the mode was hard-coded to be ``"w"`` which truncates the file before logging.
|
||||||
|
|
||||||
|
|
||||||
|
- `#12047 <https://github.com/pytest-dev/pytest/issues/12047>`_: When multiple finalizers of a fixture raise an exception, now all exceptions are reported as an exception group.
|
||||||
|
Previously, only the first exception was reported.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bug Fixes
|
||||||
|
---------
|
||||||
|
|
||||||
|
- `#11904 <https://github.com/pytest-dev/pytest/issues/11904>`_: Fixed a regression in pytest 8.0.0 that would cause test collection to fail due to permission errors when using ``--pyargs``.
|
||||||
|
|
||||||
|
This change improves the collection tree for tests specified using ``--pyargs``, see :pull:`12043` for a comparison with pytest 8.0 and <8.
|
||||||
|
|
||||||
|
|
||||||
|
- `#12011 <https://github.com/pytest-dev/pytest/issues/12011>`_: Fixed a regression in 8.0.1 whereby ``setup_module`` xunit-style fixtures are not executed when ``--doctest-modules`` is passed.
|
||||||
|
|
||||||
|
|
||||||
|
- `#12014 <https://github.com/pytest-dev/pytest/issues/12014>`_: Fix the ``stacklevel`` used when warning about marks used on fixtures.
|
||||||
|
|
||||||
|
|
||||||
|
- `#12039 <https://github.com/pytest-dev/pytest/issues/12039>`_: Fixed a regression in ``8.0.2`` where tests created using :fixture:`tmp_path` have been collected multiple times in CI under Windows.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Improved Documentation
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
- `#11790 <https://github.com/pytest-dev/pytest/issues/11790>`_: Documented the retention of temporary directories created using the ``tmp_path`` fixture in more detail.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Trivial/Internal Changes
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
- `#11785 <https://github.com/pytest-dev/pytest/issues/11785>`_: Some changes were made to private functions which may affect plugins which access them:
|
||||||
|
|
||||||
|
- ``FixtureManager._getautousenames()`` now takes a ``Node`` itself instead of the nodeid.
|
||||||
|
- ``FixtureManager.getfixturedefs()`` now takes the ``Node`` itself instead of the nodeid.
|
||||||
|
- The ``_pytest.nodes.iterparentnodeids()`` function is removed without replacement.
|
||||||
|
Prefer to traverse the node hierarchy itself instead.
|
||||||
|
If you really need to, copy the function from the previous pytest release.
|
||||||
|
|
||||||
|
|
||||||
pytest 8.0.2 (2024-02-24)
|
pytest 8.0.2 (2024-02-24)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
|
@ -162,7 +162,7 @@ objects, they are still using the default pytest representation:
|
||||||
rootdir: /home/sweet/project
|
rootdir: /home/sweet/project
|
||||||
collected 8 items
|
collected 8 items
|
||||||
|
|
||||||
<Dir parametrize.rst-194>
|
<Dir parametrize.rst-195>
|
||||||
<Module test_time.py>
|
<Module test_time.py>
|
||||||
<Function test_timedistance_v0[a0-b0-expected0]>
|
<Function test_timedistance_v0[a0-b0-expected0]>
|
||||||
<Function test_timedistance_v0[a1-b1-expected1]>
|
<Function test_timedistance_v0[a1-b1-expected1]>
|
||||||
|
@ -239,7 +239,7 @@ If you just collect tests you'll also nicely see 'advanced' and 'basic' as varia
|
||||||
rootdir: /home/sweet/project
|
rootdir: /home/sweet/project
|
||||||
collected 4 items
|
collected 4 items
|
||||||
|
|
||||||
<Dir parametrize.rst-194>
|
<Dir parametrize.rst-195>
|
||||||
<Module test_scenarios.py>
|
<Module test_scenarios.py>
|
||||||
<Class TestSampleWithScenarios>
|
<Class TestSampleWithScenarios>
|
||||||
<Function test_demo1[basic]>
|
<Function test_demo1[basic]>
|
||||||
|
@ -318,7 +318,7 @@ Let's first see how it looks like at collection time:
|
||||||
rootdir: /home/sweet/project
|
rootdir: /home/sweet/project
|
||||||
collected 2 items
|
collected 2 items
|
||||||
|
|
||||||
<Dir parametrize.rst-194>
|
<Dir parametrize.rst-195>
|
||||||
<Module test_backends.py>
|
<Module test_backends.py>
|
||||||
<Function test_db_initialized[d1]>
|
<Function test_db_initialized[d1]>
|
||||||
<Function test_db_initialized[d2]>
|
<Function test_db_initialized[d2]>
|
||||||
|
|
|
@ -152,7 +152,7 @@ The test collection would look like this:
|
||||||
configfile: pytest.ini
|
configfile: pytest.ini
|
||||||
collected 2 items
|
collected 2 items
|
||||||
|
|
||||||
<Dir pythoncollection.rst-195>
|
<Dir pythoncollection.rst-196>
|
||||||
<Module check_myapp.py>
|
<Module check_myapp.py>
|
||||||
<Class CheckMyApp>
|
<Class CheckMyApp>
|
||||||
<Function simple_check>
|
<Function simple_check>
|
||||||
|
@ -215,7 +215,7 @@ You can always peek at the collection tree without running tests like this:
|
||||||
configfile: pytest.ini
|
configfile: pytest.ini
|
||||||
collected 3 items
|
collected 3 items
|
||||||
|
|
||||||
<Dir pythoncollection.rst-195>
|
<Dir pythoncollection.rst-196>
|
||||||
<Dir CWD>
|
<Dir CWD>
|
||||||
<Module pythoncollection.py>
|
<Module pythoncollection.py>
|
||||||
<Function test_function>
|
<Function test_function>
|
||||||
|
|
|
@ -445,7 +445,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
|
||||||
self = <failure_demo.TestRaises object at 0xdeadbeef0020>
|
self = <failure_demo.TestRaises object at 0xdeadbeef0020>
|
||||||
|
|
||||||
def test_tupleerror(self):
|
def test_tupleerror(self):
|
||||||
> a, b = [1] # NOQA
|
> a, b = [1] # noqa: F841
|
||||||
E ValueError: not enough values to unpack (expected 2, got 1)
|
E ValueError: not enough values to unpack (expected 2, got 1)
|
||||||
|
|
||||||
failure_demo.py:175: ValueError
|
failure_demo.py:175: ValueError
|
||||||
|
@ -467,7 +467,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
|
||||||
self = <failure_demo.TestRaises object at 0xdeadbeef0022>
|
self = <failure_demo.TestRaises object at 0xdeadbeef0022>
|
||||||
|
|
||||||
def test_some_error(self):
|
def test_some_error(self):
|
||||||
> if namenotexi: # NOQA
|
> if namenotexi: # noqa: F821
|
||||||
E NameError: name 'namenotexi' is not defined
|
E NameError: name 'namenotexi' is not defined
|
||||||
|
|
||||||
failure_demo.py:183: NameError
|
failure_demo.py:183: NameError
|
||||||
|
|
|
@ -22,7 +22,7 @@ Install ``pytest``
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ pytest --version
|
$ pytest --version
|
||||||
pytest 8.0.2
|
pytest 8.1.0
|
||||||
|
|
||||||
.. _`simpletest`:
|
.. _`simpletest`:
|
||||||
|
|
||||||
|
|
|
@ -1418,7 +1418,7 @@ Running the above tests results in the following test IDs being used:
|
||||||
rootdir: /home/sweet/project
|
rootdir: /home/sweet/project
|
||||||
collected 12 items
|
collected 12 items
|
||||||
|
|
||||||
<Dir fixtures.rst-213>
|
<Dir fixtures.rst-214>
|
||||||
<Module test_anothersmtp.py>
|
<Module test_anothersmtp.py>
|
||||||
<Function test_showhelo[smtp.gmail.com]>
|
<Function test_showhelo[smtp.gmail.com]>
|
||||||
<Function test_showhelo[mail.python.org]>
|
<Function test_showhelo[mail.python.org]>
|
||||||
|
|
|
@ -2103,6 +2103,8 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
--log-cli-date-format=LOG_CLI_DATE_FORMAT
|
--log-cli-date-format=LOG_CLI_DATE_FORMAT
|
||||||
Log date format used by the logging module
|
Log date format used by the logging module
|
||||||
--log-file=LOG_FILE Path to a file when logging will be written to
|
--log-file=LOG_FILE Path to a file when logging will be written to
|
||||||
|
--log-file-mode={w,a}
|
||||||
|
Log file open mode
|
||||||
--log-file-level=LOG_FILE_LEVEL
|
--log-file-level=LOG_FILE_LEVEL
|
||||||
Log file logging level
|
Log file logging level
|
||||||
--log-file-format=LOG_FILE_FORMAT
|
--log-file-format=LOG_FILE_FORMAT
|
||||||
|
@ -2128,6 +2130,9 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
Each line specifies a pattern for
|
Each line specifies a pattern for
|
||||||
warnings.filterwarnings. Processed after
|
warnings.filterwarnings. Processed after
|
||||||
-W/--pythonwarnings.
|
-W/--pythonwarnings.
|
||||||
|
consider_namespace_packages (bool):
|
||||||
|
Consider namespace packages when resolving module
|
||||||
|
names during import
|
||||||
usefixtures (args): List of default fixtures to be used with this
|
usefixtures (args): List of default fixtures to be used with this
|
||||||
project
|
project
|
||||||
python_files (args): Glob-style file patterns for Python test module
|
python_files (args): Glob-style file patterns for Python test module
|
||||||
|
@ -2146,6 +2151,11 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
progress information ("progress" (percentage) |
|
progress information ("progress" (percentage) |
|
||||||
"count" | "progress-even-when-capture-no" (forces
|
"count" | "progress-even-when-capture-no" (forces
|
||||||
progress even when capture=no)
|
progress even when capture=no)
|
||||||
|
verbosity_test_cases (string):
|
||||||
|
Specify a verbosity level for test case execution,
|
||||||
|
overriding the main level. Higher levels will
|
||||||
|
provide more detailed information about each test
|
||||||
|
case executed.
|
||||||
xfail_strict (bool): Default for the strict parameter of xfail markers
|
xfail_strict (bool): Default for the strict parameter of xfail markers
|
||||||
when not given explicitly (default: False)
|
when not given explicitly (default: False)
|
||||||
tmp_path_retention_count (string):
|
tmp_path_retention_count (string):
|
||||||
|
@ -2193,6 +2203,8 @@ All the command-line flags can be obtained by running ``pytest --help``::
|
||||||
log_cli_date_format (string):
|
log_cli_date_format (string):
|
||||||
Default value for --log-cli-date-format
|
Default value for --log-cli-date-format
|
||||||
log_file (string): Default value for --log-file
|
log_file (string): Default value for --log-file
|
||||||
|
log_file_mode (string):
|
||||||
|
Default value for --log-file-mode
|
||||||
log_file_level (string):
|
log_file_level (string):
|
||||||
Default value for --log-file-level
|
Default value for --log-file-level
|
||||||
log_file_format (string):
|
log_file_format (string):
|
||||||
|
|
Loading…
Reference in New Issue