Merge pull request #11678 from pytest-dev/doc-nitpicks
doc: fix some broken Sphinx references
This commit is contained in:
commit
d1675646f2
|
@ -1,4 +1,4 @@
|
||||||
:func:`pytest.warns <warns>` now re-emits unmatched warnings when the context
|
:func:`~pytest.warns` now re-emits unmatched warnings when the context
|
||||||
closes -- previously it would consume all warnings, hiding those that were not
|
closes -- previously it would consume all warnings, hiding those that were not
|
||||||
matched by the function.
|
matched by the function.
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ b) transitional: the old and new API don't conflict
|
||||||
|
|
||||||
We will only start the removal of deprecated functionality in major releases (e.g. if we deprecate something in 3.0 we will start to remove it in 4.0), and keep it around for at least two minor releases (e.g. if we deprecate something in 3.9 and 4.0 is the next release, we start to remove it in 5.0, not in 4.0).
|
We will only start the removal of deprecated functionality in major releases (e.g. if we deprecate something in 3.0 we will start to remove it in 4.0), and keep it around for at least two minor releases (e.g. if we deprecate something in 3.9 and 4.0 is the next release, we start to remove it in 5.0, not in 4.0).
|
||||||
|
|
||||||
A deprecated feature scheduled to be removed in major version X will use the warning class `PytestRemovedInXWarning` (a subclass of :class:`~pytest.PytestDeprecationwarning`).
|
A deprecated feature scheduled to be removed in major version X will use the warning class `PytestRemovedInXWarning` (a subclass of :class:`~pytest.PytestDeprecationWarning`).
|
||||||
|
|
||||||
When the deprecation expires (e.g. 4.0 is released), we won't remove the deprecated functionality immediately, but will use the standard warning filters to turn `PytestRemovedInXWarning` (e.g. `PytestRemovedIn4Warning`) into **errors** by default. This approach makes it explicit that removal is imminent, and still gives you time to turn the deprecated feature into a warning instead of an error so it can be dealt with in your own time. In the next minor release (e.g. 4.1), the feature will be effectively removed.
|
When the deprecation expires (e.g. 4.0 is released), we won't remove the deprecated functionality immediately, but will use the standard warning filters to turn `PytestRemovedInXWarning` (e.g. `PytestRemovedIn4Warning`) into **errors** by default. This approach makes it explicit that removal is imminent, and still gives you time to turn the deprecated feature into a warning instead of an error so it can be dealt with in your own time. In the next minor release (e.g. 4.1), the feature will be effectively removed.
|
||||||
|
|
||||||
|
|
|
@ -413,7 +413,7 @@ Improvements
|
||||||
|
|
||||||
|
|
||||||
- `#8508 <https://github.com/pytest-dev/pytest/issues/8508>`_: Introduce multiline display for warning matching via :py:func:`pytest.warns` and
|
- `#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`.
|
enhance match comparison for :py:func:`pytest.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
|
- `#8646 <https://github.com/pytest-dev/pytest/issues/8646>`_: Improve :py:func:`pytest.raises`. Previously passing an empty tuple would give a confusing
|
||||||
|
@ -422,7 +422,7 @@ Improvements
|
||||||
|
|
||||||
- `#9741 <https://github.com/pytest-dev/pytest/issues/9741>`_: On Python 3.11, use the standard library's :mod:`tomllib` to parse TOML.
|
- `#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.
|
`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``.
|
- `#9742 <https://github.com/pytest-dev/pytest/issues/9742>`_: Display assertion message without escaped newline characters with ``-vv``.
|
||||||
|
@ -457,7 +457,7 @@ Bug Fixes
|
||||||
|
|
||||||
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, 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.
|
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:`Node.iter_markers <_pytest.nodes.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``.
|
- `#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``.
|
||||||
|
@ -710,7 +710,7 @@ Bug Fixes
|
||||||
- `#9355 <https://github.com/pytest-dev/pytest/issues/9355>`_: Fixed error message prints function decorators when using assert in Python 3.8 and above.
|
- `#9355 <https://github.com/pytest-dev/pytest/issues/9355>`_: Fixed error message prints function decorators when using assert in Python 3.8 and above.
|
||||||
|
|
||||||
|
|
||||||
- `#9396 <https://github.com/pytest-dev/pytest/issues/9396>`_: Ensure :attr:`pytest.Config.inifile` is available during the :func:`pytest_cmdline_main <_pytest.hookspec.pytest_cmdline_main>` hook (regression during ``7.0.0rc1``).
|
- `#9396 <https://github.com/pytest-dev/pytest/issues/9396>`_: Ensure `pytest.Config.inifile` is available during the :hook:`pytest_cmdline_main` hook (regression during ``7.0.0rc1``).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -855,7 +855,7 @@ Deprecations
|
||||||
- ``parser.addoption(..., type="int/string/float/complex")`` - use ``type=int`` etc. instead.
|
- ``parser.addoption(..., type="int/string/float/complex")`` - use ``type=int`` etc. instead.
|
||||||
|
|
||||||
|
|
||||||
- `#8447 <https://github.com/pytest-dev/pytest/issues/8447>`_: Defining a custom pytest node type which is both an :class:`pytest.Item <Item>` and a :class:`pytest.Collector <Collector>` (e.g. :class:`pytest.File <File>`) now issues a warning.
|
- `#8447 <https://github.com/pytest-dev/pytest/issues/8447>`_: Defining a custom pytest node type which is both an :class:`~pytest.Item` and a :class:`~pytest.Collector` (e.g. :class:`~pytest.File`) now issues a warning.
|
||||||
It was never sanely supported and triggers hard to debug errors.
|
It was never sanely supported and triggers hard to debug errors.
|
||||||
|
|
||||||
See :ref:`the deprecation note <diamond-inheritance-deprecated>` for full details.
|
See :ref:`the deprecation note <diamond-inheritance-deprecated>` for full details.
|
||||||
|
@ -897,7 +897,7 @@ Features
|
||||||
- `#7132 <https://github.com/pytest-dev/pytest/issues/7132>`_: Added two environment variables :envvar:`PYTEST_THEME` and :envvar:`PYTEST_THEME_MODE` to let the users customize the pygments theme used.
|
- `#7132 <https://github.com/pytest-dev/pytest/issues/7132>`_: Added two environment variables :envvar:`PYTEST_THEME` and :envvar:`PYTEST_THEME_MODE` to let the users customize the pygments theme used.
|
||||||
|
|
||||||
|
|
||||||
- `#7259 <https://github.com/pytest-dev/pytest/issues/7259>`_: Added :meth:`cache.mkdir() <pytest.Cache.mkdir>`, which is similar to the existing :meth:`cache.makedir() <pytest.Cache.makedir>`,
|
- `#7259 <https://github.com/pytest-dev/pytest/issues/7259>`_: Added :meth:`cache.mkdir() <pytest.Cache.mkdir>`, which is similar to the existing ``cache.makedir()``,
|
||||||
but returns a :class:`pathlib.Path` instead of a legacy ``py.path.local``.
|
but returns a :class:`pathlib.Path` instead of a legacy ``py.path.local``.
|
||||||
|
|
||||||
Added a ``paths`` type to :meth:`parser.addini() <pytest.Parser.addini>`,
|
Added a ``paths`` type to :meth:`parser.addini() <pytest.Parser.addini>`,
|
||||||
|
@ -923,7 +923,7 @@ Features
|
||||||
- ``pytest.HookRecorder`` for the :class:`HookRecorder <pytest.HookRecorder>` type returned from :class:`~pytest.Pytester`.
|
- ``pytest.HookRecorder`` for the :class:`HookRecorder <pytest.HookRecorder>` type returned from :class:`~pytest.Pytester`.
|
||||||
- ``pytest.RecordedHookCall`` for the :class:`RecordedHookCall <pytest.HookRecorder>` type returned from :class:`~pytest.HookRecorder`.
|
- ``pytest.RecordedHookCall`` for the :class:`RecordedHookCall <pytest.HookRecorder>` type returned from :class:`~pytest.HookRecorder`.
|
||||||
- ``pytest.RunResult`` for the :class:`RunResult <pytest.RunResult>` type returned from :class:`~pytest.Pytester`.
|
- ``pytest.RunResult`` for the :class:`RunResult <pytest.RunResult>` type returned from :class:`~pytest.Pytester`.
|
||||||
- ``pytest.LineMatcher`` for the :class:`LineMatcher <pytest.RunResult>` type used in :class:`~pytest.RunResult` and others.
|
- ``pytest.LineMatcher`` for the :class:`LineMatcher <pytest.LineMatcher>` type used in :class:`~pytest.RunResult` and others.
|
||||||
- ``pytest.TestReport`` for the :class:`TestReport <pytest.TestReport>` type used in various hooks.
|
- ``pytest.TestReport`` for the :class:`TestReport <pytest.TestReport>` type used in various hooks.
|
||||||
- ``pytest.CollectReport`` for the :class:`CollectReport <pytest.CollectReport>` type used in various hooks.
|
- ``pytest.CollectReport`` for the :class:`CollectReport <pytest.CollectReport>` type used in various hooks.
|
||||||
|
|
||||||
|
@ -956,7 +956,7 @@ Features
|
||||||
|
|
||||||
|
|
||||||
- `#8251 <https://github.com/pytest-dev/pytest/issues/8251>`_: Implement ``Node.path`` as a ``pathlib.Path``. Both the old ``fspath`` and this new attribute gets set no matter whether ``path`` or ``fspath`` (deprecated) is passed to the constructor. It is a replacement for the ``fspath`` attribute (which represents the same path as ``py.path.local``). While ``fspath`` is not deprecated yet
|
- `#8251 <https://github.com/pytest-dev/pytest/issues/8251>`_: Implement ``Node.path`` as a ``pathlib.Path``. Both the old ``fspath`` and this new attribute gets set no matter whether ``path`` or ``fspath`` (deprecated) is passed to the constructor. It is a replacement for the ``fspath`` attribute (which represents the same path as ``py.path.local``). While ``fspath`` is not deprecated yet
|
||||||
due to the ongoing migration of methods like :meth:`~_pytest.Item.reportinfo`, we expect to deprecate it in a future release.
|
due to the ongoing migration of methods like :meth:`~pytest.Item.reportinfo`, we expect to deprecate it in a future release.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The name of the :class:`~_pytest.nodes.Node` arguments and attributes (the
|
The name of the :class:`~_pytest.nodes.Node` arguments and attributes (the
|
||||||
|
@ -988,7 +988,7 @@ Features
|
||||||
See :ref:`plugin-stash` for details.
|
See :ref:`plugin-stash` for details.
|
||||||
|
|
||||||
|
|
||||||
- `#8953 <https://github.com/pytest-dev/pytest/issues/8953>`_: :class:`RunResult <_pytest.pytester.RunResult>` method :meth:`assert_outcomes <_pytest.pytester.RunResult.assert_outcomes>` now accepts a
|
- `#8953 <https://github.com/pytest-dev/pytest/issues/8953>`_: :class:`~pytest.RunResult` method :meth:`~pytest.RunResult.assert_outcomes` now accepts a
|
||||||
``warnings`` argument to assert the total number of warnings captured.
|
``warnings`` argument to assert the total number of warnings captured.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1000,7 +1000,7 @@ Features
|
||||||
used.
|
used.
|
||||||
|
|
||||||
|
|
||||||
- `#9113 <https://github.com/pytest-dev/pytest/issues/9113>`_: :class:`RunResult <_pytest.pytester.RunResult>` method :meth:`assert_outcomes <_pytest.pytester.RunResult.assert_outcomes>` now accepts a
|
- `#9113 <https://github.com/pytest-dev/pytest/issues/9113>`_: :class:`~pytest.RunResult` method :meth:`~pytest.RunResult.assert_outcomes` now accepts a
|
||||||
``deselected`` argument to assert the total number of deselected tests.
|
``deselected`` argument to assert the total number of deselected tests.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1013,7 +1013,7 @@ Improvements
|
||||||
|
|
||||||
- `#7480 <https://github.com/pytest-dev/pytest/issues/7480>`_: A deprecation scheduled to be removed in a major version X (e.g. pytest 7, 8, 9, ...) now uses warning category `PytestRemovedInXWarning`,
|
- `#7480 <https://github.com/pytest-dev/pytest/issues/7480>`_: A deprecation scheduled to be removed in a major version X (e.g. pytest 7, 8, 9, ...) now uses warning category `PytestRemovedInXWarning`,
|
||||||
a subclass of :class:`~pytest.PytestDeprecationWarning`,
|
a subclass of :class:`~pytest.PytestDeprecationWarning`,
|
||||||
instead of :class:`PytestDeprecationWarning` directly.
|
instead of :class:`~pytest.PytestDeprecationWarning` directly.
|
||||||
|
|
||||||
See :ref:`backwards-compatibility` for more details.
|
See :ref:`backwards-compatibility` for more details.
|
||||||
|
|
||||||
|
@ -1052,7 +1052,7 @@ Improvements
|
||||||
|
|
||||||
- `#8803 <https://github.com/pytest-dev/pytest/issues/8803>`_: It is now possible to add colors to custom log levels on cli log.
|
- `#8803 <https://github.com/pytest-dev/pytest/issues/8803>`_: It is now possible to add colors to custom log levels on cli log.
|
||||||
|
|
||||||
By using :func:`add_color_level <_pytest.logging.add_color_level>` from a ``pytest_configure`` hook, colors can be added::
|
By using ``add_color_level`` from a :hook:`pytest_configure` hook, colors can be added::
|
||||||
|
|
||||||
logging_plugin = config.pluginmanager.get_plugin('logging-plugin')
|
logging_plugin = config.pluginmanager.get_plugin('logging-plugin')
|
||||||
logging_plugin.log_cli_handler.formatter.add_color_level(logging.INFO, 'cyan')
|
logging_plugin.log_cli_handler.formatter.add_color_level(logging.INFO, 'cyan')
|
||||||
|
@ -1117,7 +1117,7 @@ Bug Fixes
|
||||||
|
|
||||||
- `#8503 <https://github.com/pytest-dev/pytest/issues/8503>`_: :meth:`pytest.MonkeyPatch.syspath_prepend` no longer fails when
|
- `#8503 <https://github.com/pytest-dev/pytest/issues/8503>`_: :meth:`pytest.MonkeyPatch.syspath_prepend` no longer fails when
|
||||||
``setuptools`` is not installed.
|
``setuptools`` is not installed.
|
||||||
It now only calls :func:`pkg_resources.fixup_namespace_packages` if
|
It now only calls ``pkg_resources.fixup_namespace_packages`` if
|
||||||
``pkg_resources`` was previously imported, because it is not needed otherwise.
|
``pkg_resources`` was previously imported, because it is not needed otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1344,7 +1344,7 @@ Features
|
||||||
|
|
||||||
This is part of the movement to use :class:`pathlib.Path` objects internally, in order to remove the dependency to ``py`` in the future.
|
This is part of the movement to use :class:`pathlib.Path` objects internally, in order to remove the dependency to ``py`` in the future.
|
||||||
|
|
||||||
Internally, the old :class:`Testdir <_pytest.pytester.Testdir>` is now a thin wrapper around :class:`Pytester <_pytest.pytester.Pytester>`, preserving the old interface.
|
Internally, the old :class:`~pytest.Testdir` is now a thin wrapper around :class:`~pytest.Pytester`, preserving the old interface.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`7695`: A new hook was added, `pytest_markeval_namespace` which should return a dictionary.
|
- :issue:`7695`: A new hook was added, `pytest_markeval_namespace` which should return a dictionary.
|
||||||
|
@ -1382,7 +1382,7 @@ Features
|
||||||
Improvements
|
Improvements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
- :issue:`1265`: Added an ``__str__`` implementation to the :class:`~pytest.pytester.LineMatcher` class which is returned from ``pytester.run_pytest().stdout`` and similar. It returns the entire output, like the existing ``str()`` method.
|
- :issue:`1265`: Added an ``__str__`` implementation to the :class:`~pytest.LineMatcher` class which is returned from ``pytester.run_pytest().stdout`` and similar. It returns the entire output, like the existing ``str()`` method.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`2044`: Verbose mode now shows the reason that a test was skipped in the test's terminal line after the "SKIPPED", "XFAIL" or "XPASS".
|
- :issue:`2044`: Verbose mode now shows the reason that a test was skipped in the test's terminal line after the "SKIPPED", "XFAIL" or "XPASS".
|
||||||
|
@ -1446,7 +1446,7 @@ Bug Fixes
|
||||||
- :issue:`7911`: Directories created by by :fixture:`tmp_path` and :fixture:`tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites.
|
- :issue:`7911`: Directories created by by :fixture:`tmp_path` and :fixture:`tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`7913`: Fixed a crash or hang in :meth:`pytester.spawn <_pytest.pytester.Pytester.spawn>` when the :mod:`readline` module is involved.
|
- :issue:`7913`: Fixed a crash or hang in :meth:`pytester.spawn <pytest.Pytester.spawn>` when the :mod:`readline` module is involved.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`7951`: Fixed handling of recursive symlinks when collecting tests.
|
- :issue:`7951`: Fixed handling of recursive symlinks when collecting tests.
|
||||||
|
@ -1563,7 +1563,7 @@ Deprecations
|
||||||
if you use this and want a replacement.
|
if you use this and want a replacement.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`7255`: The :hook:`pytest_warning_captured` hook is deprecated in favor
|
- :issue:`7255`: The ``pytest_warning_captured`` hook is deprecated in favor
|
||||||
of :hook:`pytest_warning_recorded`, and will be removed in a future version.
|
of :hook:`pytest_warning_recorded`, and will be removed in a future version.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1591,8 +1591,8 @@ Improvements
|
||||||
- :issue:`7572`: When a plugin listed in ``required_plugins`` is missing or an unknown config key is used with ``--strict-config``, a simple error message is now shown instead of a stacktrace.
|
- :issue:`7572`: When a plugin listed in ``required_plugins`` is missing or an unknown config key is used with ``--strict-config``, a simple error message is now shown instead of a stacktrace.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`7685`: Added two new attributes :attr:`rootpath <_pytest.config.Config.rootpath>` and :attr:`inipath <_pytest.config.Config.inipath>` to :class:`Config <_pytest.config.Config>`.
|
- :issue:`7685`: Added two new attributes :attr:`rootpath <pytest.Config.rootpath>` and :attr:`inipath <pytest.Config.inipath>` to :class:`~pytest.Config`.
|
||||||
These attributes are :class:`pathlib.Path` versions of the existing :attr:`rootdir <_pytest.config.Config.rootdir>` and :attr:`inifile <_pytest.config.Config.inifile>` attributes,
|
These attributes are :class:`pathlib.Path` versions of the existing :attr:`rootdir <pytest.Config.rootdir>` and :attr:`inifile <pytest.Config.inifile>` attributes,
|
||||||
and should be preferred over them when possible.
|
and should be preferred over them when possible.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1663,7 +1663,7 @@ Trivial/Internal Changes
|
||||||
- :issue:`7587`: The dependency on the ``more-itertools`` package has been removed.
|
- :issue:`7587`: The dependency on the ``more-itertools`` package has been removed.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`7631`: The result type of :meth:`capfd.readouterr() <_pytest.capture.CaptureFixture.readouterr>` (and similar) is no longer a namedtuple,
|
- :issue:`7631`: The result type of :meth:`capfd.readouterr() <pytest.CaptureFixture.readouterr>` (and similar) is no longer a namedtuple,
|
||||||
but should behave like one in all respects. This was done for technical reasons.
|
but should behave like one in all respects. This was done for technical reasons.
|
||||||
|
|
||||||
|
|
||||||
|
@ -2041,10 +2041,10 @@ Improvements
|
||||||
- :issue:`7128`: `pytest --version` now displays just the pytest version, while `pytest --version --version` displays more verbose information including plugins. This is more consistent with how other tools show `--version`.
|
- :issue:`7128`: `pytest --version` now displays just the pytest version, while `pytest --version --version` displays more verbose information including plugins. This is more consistent with how other tools show `--version`.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`7133`: :meth:`caplog.set_level() <_pytest.logging.LogCaptureFixture.set_level>` will now override any :confval:`log_level` set via the CLI or configuration file.
|
- :issue:`7133`: :meth:`caplog.set_level() <pytest.LogCaptureFixture.set_level>` will now override any :confval:`log_level` set via the CLI or configuration file.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`7159`: :meth:`caplog.set_level() <_pytest.logging.LogCaptureFixture.set_level>` and :meth:`caplog.at_level() <_pytest.logging.LogCaptureFixture.at_level>` no longer affect
|
- :issue:`7159`: :meth:`caplog.set_level() <pytest.LogCaptureFixture.set_level>` and :meth:`caplog.at_level() <pytest.LogCaptureFixture.at_level>` no longer affect
|
||||||
the level of logs that are shown in the *Captured log report* report section.
|
the level of logs that are shown in the *Captured log report* report section.
|
||||||
|
|
||||||
|
|
||||||
|
@ -2390,7 +2390,7 @@ Improvements
|
||||||
- :issue:`6384`: Make `--showlocals` work also with `--tb=short`.
|
- :issue:`6384`: Make `--showlocals` work also with `--tb=short`.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`6653`: Add support for matching lines consecutively with :attr:`LineMatcher <_pytest.pytester.LineMatcher>`'s :func:`~_pytest.pytester.LineMatcher.fnmatch_lines` and :func:`~_pytest.pytester.LineMatcher.re_match_lines`.
|
- :issue:`6653`: Add support for matching lines consecutively with :class:`~pytest.LineMatcher`'s :func:`~pytest.LineMatcher.fnmatch_lines` and :func:`~pytest.LineMatcher.re_match_lines`.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`6658`: Code is now highlighted in tracebacks when ``pygments`` is installed.
|
- :issue:`6658`: Code is now highlighted in tracebacks when ``pygments`` is installed.
|
||||||
|
@ -2458,7 +2458,7 @@ Bug Fixes
|
||||||
- :issue:`6597`: Fix node ids which contain a parametrized empty-string variable.
|
- :issue:`6597`: Fix node ids which contain a parametrized empty-string variable.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`6646`: Assertion rewriting hooks are (re)stored for the current item, which fixes them being still used after e.g. pytester's :func:`testdir.runpytest <_pytest.pytester.Testdir.runpytest>` etc.
|
- :issue:`6646`: Assertion rewriting hooks are (re)stored for the current item, which fixes them being still used after e.g. pytester's :func:`testdir.runpytest <pytest.Testdir.runpytest>` etc.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`6660`: :py:func:`pytest.exit` is handled when emitted from the :hook:`pytest_sessionfinish` hook. This includes quitting from a debugger.
|
- :issue:`6660`: :py:func:`pytest.exit` is handled when emitted from the :hook:`pytest_sessionfinish` hook. This includes quitting from a debugger.
|
||||||
|
@ -2524,7 +2524,7 @@ Bug Fixes
|
||||||
``multiprocessing`` module.
|
``multiprocessing`` module.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`6436`: :class:`FixtureDef <_pytest.fixtures.FixtureDef>` objects now properly register their finalizers with autouse and
|
- :issue:`6436`: :class:`~pytest.FixtureDef` objects now properly register their finalizers with autouse and
|
||||||
parameterized fixtures that execute before them in the fixture stack so they are torn
|
parameterized fixtures that execute before them in the fixture stack so they are torn
|
||||||
down at the right times, and in the right order.
|
down at the right times, and in the right order.
|
||||||
|
|
||||||
|
@ -2580,7 +2580,7 @@ Improvements
|
||||||
Bug Fixes
|
Bug Fixes
|
||||||
---------
|
---------
|
||||||
|
|
||||||
- :issue:`5914`: pytester: fix :py:func:`~_pytest.pytester.LineMatcher.no_fnmatch_line` when used after positive matching.
|
- :issue:`5914`: pytester: fix :py:func:`~pytest.LineMatcher.no_fnmatch_line` when used after positive matching.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`6082`: Fix line detection for doctest samples inside :py:class:`python:property` docstrings, as a workaround to :bpo:`17446`.
|
- :issue:`6082`: Fix line detection for doctest samples inside :py:class:`python:property` docstrings, as a workaround to :bpo:`17446`.
|
||||||
|
@ -2644,8 +2644,8 @@ Features
|
||||||
rather than implicitly.
|
rather than implicitly.
|
||||||
|
|
||||||
|
|
||||||
- :issue:`5914`: :fixture:`testdir` learned two new functions, :py:func:`~_pytest.pytester.LineMatcher.no_fnmatch_line` and
|
- :issue:`5914`: :fixture:`testdir` learned two new functions, :py:func:`~pytest.LineMatcher.no_fnmatch_line` and
|
||||||
:py:func:`~_pytest.pytester.LineMatcher.no_re_match_line`.
|
:py:func:`~pytest.LineMatcher.no_re_match_line`.
|
||||||
|
|
||||||
The functions are used to ensure the captured text *does not* match the given
|
The functions are used to ensure the captured text *does not* match the given
|
||||||
pattern.
|
pattern.
|
||||||
|
@ -6497,7 +6497,7 @@ Changes
|
||||||
* fix :issue:`2013`: turn RecordedWarning into ``namedtuple``,
|
* fix :issue:`2013`: turn RecordedWarning into ``namedtuple``,
|
||||||
to give it a comprehensible repr while preventing unwarranted modification.
|
to give it a comprehensible repr while preventing unwarranted modification.
|
||||||
|
|
||||||
* fix :issue:`2208`: ensure an iteration limit for _pytest.compat.get_real_func.
|
* fix :issue:`2208`: ensure an iteration limit for ``_pytest.compat.get_real_func``.
|
||||||
Thanks :user:`RonnyPfannschmidt` for the report and PR.
|
Thanks :user:`RonnyPfannschmidt` for the report and PR.
|
||||||
|
|
||||||
* Hooks are now verified after collection is complete, rather than right after loading installed plugins. This
|
* Hooks are now verified after collection is complete, rather than right after loading installed plugins. This
|
||||||
|
|
|
@ -177,7 +177,7 @@ arguments they only pass on to the superclass.
|
||||||
resolved in future versions as we slowly get rid of the :pypi:`py`
|
resolved in future versions as we slowly get rid of the :pypi:`py`
|
||||||
dependency (see :issue:`9283` for a longer discussion).
|
dependency (see :issue:`9283` for a longer discussion).
|
||||||
|
|
||||||
Due to the ongoing migration of methods like :meth:`~_pytest.Item.reportinfo`
|
Due to the ongoing migration of methods like :meth:`~pytest.Item.reportinfo`
|
||||||
which still is expected to return a ``py.path.local`` object, nodes still have
|
which still is expected to return a ``py.path.local`` object, nodes still have
|
||||||
both ``fspath`` (``py.path.local``) and ``path`` (``pathlib.Path``) attributes,
|
both ``fspath`` (``py.path.local``) and ``path`` (``pathlib.Path``) attributes,
|
||||||
no matter what argument was used in the constructor. We expect to deprecate the
|
no matter what argument was used in the constructor. We expect to deprecate the
|
||||||
|
@ -336,7 +336,7 @@ Diamond inheritance between :class:`pytest.Collector` and :class:`pytest.Item`
|
||||||
|
|
||||||
.. deprecated:: 7.0
|
.. deprecated:: 7.0
|
||||||
|
|
||||||
Defining a custom pytest node type which is both an :class:`pytest.Item <Item>` and a :class:`pytest.Collector <Collector>` (e.g. :class:`pytest.File <File>`) now issues a warning.
|
Defining a custom pytest node type which is both an :class:`~pytest.Item` and a :class:`~pytest.Collector` (e.g. :class:`~pytest.File`) now issues a warning.
|
||||||
It was never sanely supported and triggers hard to debug errors.
|
It was never sanely supported and triggers hard to debug errors.
|
||||||
|
|
||||||
Some plugins providing linting/code analysis have been using this as a hack.
|
Some plugins providing linting/code analysis have been using this as a hack.
|
||||||
|
@ -348,8 +348,8 @@ Instead, a separate collector node should be used, which collects the item. See
|
||||||
|
|
||||||
.. _uncooperative-constructors-deprecated:
|
.. _uncooperative-constructors-deprecated:
|
||||||
|
|
||||||
Constructors of custom :class:`pytest.Node` subclasses should take ``**kwargs``
|
Constructors of custom :class:`~_pytest.nodes.Node` subclasses should take ``**kwargs``
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. deprecated:: 7.0
|
.. deprecated:: 7.0
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
Parametrizing tests
|
Parametrizing tests
|
||||||
=================================================
|
=================================================
|
||||||
|
|
||||||
.. currentmodule:: _pytest.python
|
|
||||||
|
|
||||||
``pytest`` allows to easily parametrize test functions.
|
``pytest`` allows to easily parametrize test functions.
|
||||||
For basic docs, see :ref:`parametrize-basics`.
|
For basic docs, see :ref:`parametrize-basics`.
|
||||||
|
|
||||||
|
@ -185,7 +183,7 @@ A quick port of "testscenarios"
|
||||||
Here is a quick port to run tests configured with :pypi:`testscenarios`,
|
Here is a quick port to run tests configured with :pypi:`testscenarios`,
|
||||||
an add-on from Robert Collins for the standard unittest framework. We
|
an add-on from Robert Collins for the standard unittest framework. We
|
||||||
only have to work a bit to construct the correct arguments for pytest's
|
only have to work a bit to construct the correct arguments for pytest's
|
||||||
:py:func:`Metafunc.parametrize`:
|
:py:func:`Metafunc.parametrize <pytest.Metafunc.parametrize>`:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
|
|
@ -162,7 +162,7 @@ A note about fixture cleanup
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
pytest does not do any special processing for :data:`SIGTERM <signal.SIGTERM>` and
|
pytest does not do any special processing for :data:`SIGTERM <signal.SIGTERM>` and
|
||||||
:data:`SIGQUIT <signal.SIGQUIT>` signals (:data:`SIGINT <signal.SIGINT>` is handled naturally
|
``SIGQUIT`` signals (:data:`SIGINT <signal.SIGINT>` is handled naturally
|
||||||
by the Python runtime via :class:`KeyboardInterrupt`), so fixtures that manage external resources which are important
|
by the Python runtime via :class:`KeyboardInterrupt`), so fixtures that manage external resources which are important
|
||||||
to be cleared when the Python process is terminated (by those signals) might leak resources.
|
to be cleared when the Python process is terminated (by those signals) might leak resources.
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,6 @@ funcarg mechanism, see :ref:`historical funcargs and pytest.funcargs`.
|
||||||
If you are new to pytest, then you can simply ignore this
|
If you are new to pytest, then you can simply ignore this
|
||||||
section and read the other sections.
|
section and read the other sections.
|
||||||
|
|
||||||
.. currentmodule:: _pytest
|
|
||||||
|
|
||||||
Shortcomings of the previous ``pytest_funcarg__`` mechanism
|
Shortcomings of the previous ``pytest_funcarg__`` mechanism
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ More details can be found in the :pull:`original PR <3317>`.
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
in a future major release of pytest we will introduce class based markers,
|
in a future major release of pytest we will introduce class based markers,
|
||||||
at which point markers will no longer be limited to instances of :py:class:`~_pytest.mark.Mark`.
|
at which point markers will no longer be limited to instances of :py:class:`~pytest.Mark`.
|
||||||
|
|
||||||
|
|
||||||
cache plugin integrated into the core
|
cache plugin integrated into the core
|
||||||
|
|
|
@ -382,8 +382,6 @@ warnings: a WarningsRecorder instance. To view the recorded warnings, you can
|
||||||
iterate over this instance, call ``len`` on it to get the number of recorded
|
iterate over this instance, call ``len`` on it to get the number of recorded
|
||||||
warnings, or index into it to get a particular recorded warning.
|
warnings, or index into it to get a particular recorded warning.
|
||||||
|
|
||||||
.. currentmodule:: _pytest.warnings
|
|
||||||
|
|
||||||
Full API: :class:`~_pytest.recwarn.WarningsRecorder`.
|
Full API: :class:`~_pytest.recwarn.WarningsRecorder`.
|
||||||
|
|
||||||
.. _`warns use cases`:
|
.. _`warns use cases`:
|
||||||
|
|
|
@ -1271,7 +1271,7 @@ configured in multiple ways.
|
||||||
Extending the previous example, we can flag the fixture to create two
|
Extending the previous example, we can flag the fixture to create two
|
||||||
``smtp_connection`` fixture instances which will cause all tests using the fixture
|
``smtp_connection`` fixture instances which will cause all tests using the fixture
|
||||||
to run twice. The fixture function gets access to each parameter
|
to run twice. The fixture function gets access to each parameter
|
||||||
through the special :py:class:`request <FixtureRequest>` object:
|
through the special :py:class:`request <pytest.FixtureRequest>` object:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
|
|
@ -59,10 +59,6 @@ The remaining hook functions will not be called in this case.
|
||||||
hook wrappers: executing around other hooks
|
hook wrappers: executing around other hooks
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
|
|
||||||
.. currentmodule:: _pytest.core
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pytest plugins can implement hook wrappers which wrap the execution
|
pytest plugins can implement hook wrappers which wrap the execution
|
||||||
of other hook implementations. A hook wrapper is a generator function
|
of other hook implementations. A hook wrapper is a generator function
|
||||||
which yields exactly once. When pytest invokes hooks it first executes
|
which yields exactly once. When pytest invokes hooks it first executes
|
||||||
|
@ -165,6 +161,7 @@ Here is the order of execution:
|
||||||
It's possible to use ``tryfirst`` and ``trylast`` also on hook wrappers
|
It's possible to use ``tryfirst`` and ``trylast`` also on hook wrappers
|
||||||
in which case it will influence the ordering of hook wrappers among each other.
|
in which case it will influence the ordering of hook wrappers among each other.
|
||||||
|
|
||||||
|
.. _`declaringhooks`:
|
||||||
|
|
||||||
Declaring new hooks
|
Declaring new hooks
|
||||||
------------------------
|
------------------------
|
||||||
|
@ -174,13 +171,11 @@ Declaring new hooks
|
||||||
This is a quick overview on how to add new hooks and how they work in general, but a more complete
|
This is a quick overview on how to add new hooks and how they work in general, but a more complete
|
||||||
overview can be found in `the pluggy documentation <https://pluggy.readthedocs.io/en/latest/>`__.
|
overview can be found in `the pluggy documentation <https://pluggy.readthedocs.io/en/latest/>`__.
|
||||||
|
|
||||||
.. currentmodule:: _pytest.hookspec
|
|
||||||
|
|
||||||
Plugins and ``conftest.py`` files may declare new hooks that can then be
|
Plugins and ``conftest.py`` files may declare new hooks that can then be
|
||||||
implemented by other plugins in order to alter behaviour or interact with
|
implemented by other plugins in order to alter behaviour or interact with
|
||||||
the new plugin:
|
the new plugin:
|
||||||
|
|
||||||
.. autofunction:: pytest_addhooks
|
.. autofunction:: _pytest.hookspec.pytest_addhooks
|
||||||
:noindex:
|
:noindex:
|
||||||
|
|
||||||
Hooks are usually declared as do-nothing functions that contain only
|
Hooks are usually declared as do-nothing functions that contain only
|
||||||
|
|
|
@ -11,9 +11,6 @@ Fixtures reference
|
||||||
.. seealso:: :ref:`about-fixtures`
|
.. seealso:: :ref:`about-fixtures`
|
||||||
.. seealso:: :ref:`how-to-fixtures`
|
.. seealso:: :ref:`how-to-fixtures`
|
||||||
|
|
||||||
|
|
||||||
.. currentmodule:: _pytest.python
|
|
||||||
|
|
||||||
.. _`Dependency injection`: https://en.wikipedia.org/wiki/Dependency_injection
|
.. _`Dependency injection`: https://en.wikipedia.org/wiki/Dependency_injection
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,15 +73,13 @@ Built-in fixtures
|
||||||
:class:`pathlib.Path` objects.
|
:class:`pathlib.Path` objects.
|
||||||
|
|
||||||
:fixture:`tmpdir`
|
:fixture:`tmpdir`
|
||||||
Provide a :class:`py.path.local` object to a temporary
|
Provide a `py.path.local <https://py.readthedocs.io/en/latest/path.html>`_ object to a temporary
|
||||||
directory which is unique to each test function;
|
directory which is unique to each test function;
|
||||||
replaced by :fixture:`tmp_path`.
|
replaced by :fixture:`tmp_path`.
|
||||||
|
|
||||||
.. _`py.path.local`: https://py.readthedocs.io/en/latest/path.html
|
|
||||||
|
|
||||||
:fixture:`tmpdir_factory`
|
:fixture:`tmpdir_factory`
|
||||||
Make session-scoped temporary directories and return
|
Make session-scoped temporary directories and return
|
||||||
:class:`py.path.local` objects;
|
``py.path.local`` objects;
|
||||||
replaced by :fixture:`tmp_path_factory`.
|
replaced by :fixture:`tmp_path_factory`.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -612,10 +612,30 @@ Hooks
|
||||||
|
|
||||||
**Tutorial**: :ref:`writing-plugins`
|
**Tutorial**: :ref:`writing-plugins`
|
||||||
|
|
||||||
.. currentmodule:: _pytest.hookspec
|
|
||||||
|
|
||||||
Reference to all hooks which can be implemented by :ref:`conftest.py files <localplugin>` and :ref:`plugins <plugins>`.
|
Reference to all hooks which can be implemented by :ref:`conftest.py files <localplugin>` and :ref:`plugins <plugins>`.
|
||||||
|
|
||||||
|
@pytest.hookimpl
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. function:: pytest.hookimpl
|
||||||
|
:decorator:
|
||||||
|
|
||||||
|
pytest's decorator for marking functions as hook implementations.
|
||||||
|
|
||||||
|
See :ref:`writinghooks` and :func:`pluggy.HookimplMarker`.
|
||||||
|
|
||||||
|
@pytest.hookspec
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. function:: pytest.hookspec
|
||||||
|
:decorator:
|
||||||
|
|
||||||
|
pytest's decorator for marking functions as hook specifications.
|
||||||
|
|
||||||
|
See :ref:`declaringhooks` and :func:`pluggy.HookspecMarker`.
|
||||||
|
|
||||||
|
.. currentmodule:: _pytest.hookspec
|
||||||
|
|
||||||
Bootstrapping hooks
|
Bootstrapping hooks
|
||||||
~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -588,7 +588,7 @@ if sys.version_info >= (3, 11) or TYPE_CHECKING:
|
||||||
|
|
||||||
@final
|
@final
|
||||||
class CaptureResult(NamedTuple, Generic[AnyStr]):
|
class CaptureResult(NamedTuple, Generic[AnyStr]):
|
||||||
"""The result of :method:`CaptureFixture.readouterr`."""
|
"""The result of :method:`caplog.readouterr() <pytest.CaptureFixture.readouterr>`."""
|
||||||
|
|
||||||
out: AnyStr
|
out: AnyStr
|
||||||
err: AnyStr
|
err: AnyStr
|
||||||
|
@ -598,7 +598,7 @@ else:
|
||||||
class CaptureResult(
|
class CaptureResult(
|
||||||
collections.namedtuple("CaptureResult", ["out", "err"]), Generic[AnyStr]
|
collections.namedtuple("CaptureResult", ["out", "err"]), Generic[AnyStr]
|
||||||
):
|
):
|
||||||
"""The result of :method:`CaptureFixture.readouterr`."""
|
"""The result of :method:`caplog.readouterr() <pytest.CaptureFixture.readouterr>`."""
|
||||||
|
|
||||||
__slots__ = ()
|
__slots__ = ()
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ class Parser:
|
||||||
:param opts:
|
:param opts:
|
||||||
Option names, can be short or long options.
|
Option names, can be short or long options.
|
||||||
:param attrs:
|
:param attrs:
|
||||||
Same attributes as the argparse library's :py:func:`add_argument()
|
Same attributes as the argparse library's :meth:`add_argument()
|
||||||
<argparse.ArgumentParser.add_argument>` function accepts.
|
<argparse.ArgumentParser.add_argument>` function accepts.
|
||||||
|
|
||||||
After command line parsing, options are available on the pytest config
|
After command line parsing, options are available on the pytest config
|
||||||
|
@ -400,7 +400,7 @@ class OptionGroup:
|
||||||
:param opts:
|
:param opts:
|
||||||
Option names, can be short or long options.
|
Option names, can be short or long options.
|
||||||
:param attrs:
|
:param attrs:
|
||||||
Same attributes as the argparse library's :py:func:`add_argument()
|
Same attributes as the argparse library's :meth:`add_argument()
|
||||||
<argparse.ArgumentParser.add_argument>` function accepts.
|
<argparse.ArgumentParser.add_argument>` function accepts.
|
||||||
"""
|
"""
|
||||||
conflict = set(opts).intersection(
|
conflict = set(opts).intersection(
|
||||||
|
|
|
@ -96,8 +96,8 @@ def pytest_addoption(parser: "Parser", pluginmanager: "PytestPluginManager") ->
|
||||||
<pytest.Parser.addini>`.
|
<pytest.Parser.addini>`.
|
||||||
|
|
||||||
:param pytest.PytestPluginManager pluginmanager:
|
:param pytest.PytestPluginManager pluginmanager:
|
||||||
The pytest plugin manager, which can be used to install :py:func:`hookspec`'s
|
The pytest plugin manager, which can be used to install :py:func:`~pytest.hookspec`'s
|
||||||
or :py:func:`hookimpl`'s and allow one plugin to call another plugin's hooks
|
or :py:func:`~pytest.hookimpl`'s and allow one plugin to call another plugin's hooks
|
||||||
to change how command line options are added.
|
to change how command line options are added.
|
||||||
|
|
||||||
Options can later be accessed through the
|
Options can later be accessed through the
|
||||||
|
|
|
@ -88,7 +88,6 @@ class Testdir:
|
||||||
return self._pytester.chdir()
|
return self._pytester.chdir()
|
||||||
|
|
||||||
def finalize(self) -> None:
|
def finalize(self) -> None:
|
||||||
"""See :meth:`Pytester._finalize`."""
|
|
||||||
return self._pytester._finalize()
|
return self._pytester._finalize()
|
||||||
|
|
||||||
def makefile(self, ext, *args, **kwargs) -> LEGACY_PATH:
|
def makefile(self, ext, *args, **kwargs) -> LEGACY_PATH:
|
||||||
|
@ -269,7 +268,7 @@ class LegacyTestdirPlugin:
|
||||||
@final
|
@final
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class TempdirFactory:
|
class TempdirFactory:
|
||||||
"""Backward compatibility wrapper that implements :class:`py.path.local`
|
"""Backward compatibility wrapper that implements ``py.path.local``
|
||||||
for :class:`TempPathFactory`.
|
for :class:`TempPathFactory`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
@ -288,11 +287,11 @@ class TempdirFactory:
|
||||||
self._tmppath_factory = tmppath_factory
|
self._tmppath_factory = tmppath_factory
|
||||||
|
|
||||||
def mktemp(self, basename: str, numbered: bool = True) -> LEGACY_PATH:
|
def mktemp(self, basename: str, numbered: bool = True) -> LEGACY_PATH:
|
||||||
"""Same as :meth:`TempPathFactory.mktemp`, but returns a :class:`py.path.local` object."""
|
"""Same as :meth:`TempPathFactory.mktemp`, but returns a ``py.path.local`` object."""
|
||||||
return legacy_path(self._tmppath_factory.mktemp(basename, numbered).resolve())
|
return legacy_path(self._tmppath_factory.mktemp(basename, numbered).resolve())
|
||||||
|
|
||||||
def getbasetemp(self) -> LEGACY_PATH:
|
def getbasetemp(self) -> LEGACY_PATH:
|
||||||
"""Same as :meth:`TempPathFactory.getbasetemp`, but returns a :class:`py.path.local` object."""
|
"""Same as :meth:`TempPathFactory.getbasetemp`, but returns a ``py.path.local`` object."""
|
||||||
return legacy_path(self._tmppath_factory.getbasetemp().resolve())
|
return legacy_path(self._tmppath_factory.getbasetemp().resolve())
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -522,7 +522,7 @@ class LogCaptureFixture:
|
||||||
The levels of the loggers changed by this function will be
|
The levels of the loggers changed by this function will be
|
||||||
restored to their initial values at the end of the test.
|
restored to their initial values at the end of the test.
|
||||||
|
|
||||||
Will enable the requested logging level if it was disabled via :meth:`logging.disable`.
|
Will enable the requested logging level if it was disabled via :func:`logging.disable`.
|
||||||
|
|
||||||
:param level: The level.
|
:param level: The level.
|
||||||
:param logger: The logger to update. If not given, the root logger.
|
:param logger: The logger to update. If not given, the root logger.
|
||||||
|
@ -546,7 +546,7 @@ class LogCaptureFixture:
|
||||||
the end of the 'with' statement the level is restored to its original
|
the end of the 'with' statement the level is restored to its original
|
||||||
value.
|
value.
|
||||||
|
|
||||||
Will enable the requested logging level if it was disabled via :meth:`logging.disable`.
|
Will enable the requested logging level if it was disabled via :func:`logging.disable`.
|
||||||
|
|
||||||
:param level: The level.
|
:param level: The level.
|
||||||
:param logger: The logger to update. If not given, the root logger.
|
:param logger: The logger to update. If not given, the root logger.
|
||||||
|
|
|
@ -1044,7 +1044,7 @@ class Pytester:
|
||||||
The calling test instance (class containing the test method) must
|
The calling test instance (class containing the test method) must
|
||||||
provide a ``.getrunner()`` method which should return a runner which
|
provide a ``.getrunner()`` method which should return a runner which
|
||||||
can run the test protocol for a single item, e.g.
|
can run the test protocol for a single item, e.g.
|
||||||
:py:func:`_pytest.runner.runtestprotocol`.
|
``_pytest.runner.runtestprotocol``.
|
||||||
"""
|
"""
|
||||||
# used from runner functional tests
|
# used from runner functional tests
|
||||||
item = self.getitem(source)
|
item = self.getitem(source)
|
||||||
|
@ -1395,7 +1395,7 @@ class Pytester:
|
||||||
:param stdin:
|
:param stdin:
|
||||||
Optional standard input.
|
Optional standard input.
|
||||||
|
|
||||||
- If it is :py:attr:`CLOSE_STDIN` (Default), then this method calls
|
- If it is ``CLOSE_STDIN`` (Default), then this method calls
|
||||||
:py:class:`subprocess.Popen` with ``stdin=subprocess.PIPE``, and
|
:py:class:`subprocess.Popen` with ``stdin=subprocess.PIPE``, and
|
||||||
the standard input is closed immediately after the new command is
|
the standard input is closed immediately after the new command is
|
||||||
started.
|
started.
|
||||||
|
|
|
@ -825,8 +825,6 @@ def raises( # noqa: F811
|
||||||
When using :py:func:`pytest.raises` as a function, you can use:
|
When using :py:func:`pytest.raises` as a function, you can use:
|
||||||
``pytest.raises(Exc, func, match="passed on").match("my pattern")``.)
|
``pytest.raises(Exc, func, match="passed on").match("my pattern")``.)
|
||||||
|
|
||||||
.. currentmodule:: _pytest._code
|
|
||||||
|
|
||||||
Use ``pytest.raises`` as a context manager, which will capture the exception of the given
|
Use ``pytest.raises`` as a context manager, which will capture the exception of the given
|
||||||
type, or any of its subclasses::
|
type, or any of its subclasses::
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue