doc: fix broken cross references

This commit is contained in:
Ran Benita 2020-09-06 11:52:30 +03:00
parent 4df39e3a1d
commit e503c9a9f8
9 changed files with 27 additions and 31 deletions

View File

@ -264,7 +264,7 @@ the cache and nothing will be printed:
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
See the :fixture:`config.cache fixture <config.cache>` for more details. See the :fixture:`config.cache fixture <cache>` for more details.
Inspecting Cache content Inspecting Cache content

View File

@ -16,8 +16,7 @@ Deprecated Features
------------------- -------------------
Below is a complete list of all pytest features which are considered deprecated. Using those features will issue Below is a complete list of all pytest features which are considered deprecated. Using those features will issue
:class:`_pytest.warning_types.PytestWarning` or subclasses, which can be filtered using :class:`PytestWarning` or subclasses, which can be filtered using :ref:`standard warning filters <warnings>`.
:ref:`standard warning filters <warnings>`.
The ``pytest_warning_captured`` hook The ``pytest_warning_captured`` hook
@ -376,7 +375,7 @@ Metafunc.addcall
.. versionremoved:: 4.0 .. versionremoved:: 4.0
:meth:`_pytest.python.Metafunc.addcall` was a precursor to the current parametrized mechanism. Users should use ``_pytest.python.Metafunc.addcall`` was a precursor to the current parametrized mechanism. Users should use
:meth:`_pytest.python.Metafunc.parametrize` instead. :meth:`_pytest.python.Metafunc.parametrize` instead.
Example: Example:
@ -611,7 +610,7 @@ This has been documented as deprecated for years, but only now we are actually e
.. versionremoved:: 4.0 .. versionremoved:: 4.0
As part of a large :ref:`marker-revamp`, :meth:`_pytest.nodes.Node.get_marker` is deprecated. See As part of a large :ref:`marker-revamp`, ``_pytest.nodes.Node.get_marker`` is removed. See
:ref:`the documentation <update marker code>` on tips on how to update your code. :ref:`the documentation <update marker code>` on tips on how to update your code.

View File

@ -592,7 +592,7 @@ will not be executed.
Fixtures can introspect the requesting test context Fixtures can introspect the requesting test context
------------------------------------------------------------- -------------------------------------------------------------
Fixture functions can accept the :py:class:`request <FixtureRequest>` object Fixture functions can accept the :py:class:`request <_pytest.fixtures.FixtureRequest>` object
to introspect the "requesting" test function, class or module context. to introspect the "requesting" test function, class or module context.
Further extending the previous ``smtp_connection`` fixture example, let's Further extending the previous ``smtp_connection`` fixture example, let's
read an optional server URL from the test module which uses our fixture: read an optional server URL from the test module which uses our fixture:
@ -664,7 +664,7 @@ from the module namespace.
Using markers to pass data to fixtures Using markers to pass data to fixtures
------------------------------------------------------------- -------------------------------------------------------------
Using the :py:class:`request <FixtureRequest>` object, a fixture can also access Using the :py:class:`request <_pytest.fixtures.FixtureRequest>` object, a fixture can also access
markers which are applied to a test function. This can be useful to pass data markers which are applied to a test function. This can be useful to pass data
into a fixture from a test: into a fixture from a test:

View File

@ -51,7 +51,7 @@ There are several limitations and difficulties with this approach:
performs parametrization at the places where the resource performs parametrization at the places where the resource
is used. Moreover, you need to modify the factory to use an is used. Moreover, you need to modify the factory to use an
``extrakey`` parameter containing ``request.param`` to the ``extrakey`` parameter containing ``request.param`` to the
:py:func:`~python.Request.cached_setup` call. ``Request.cached_setup`` call.
3. Multiple parametrized session-scoped resources will be active 3. Multiple parametrized session-scoped resources will be active
at the same time, making it hard for them to affect global state at the same time, making it hard for them to affect global state
@ -113,7 +113,7 @@ This new way of parametrizing funcarg factories should in many cases
allow to re-use already written factories because effectively allow to re-use already written factories because effectively
``request.param`` was already used when test functions/classes were ``request.param`` was already used when test functions/classes were
parametrized via parametrized via
:py:func:`~_pytest.python.Metafunc.parametrize(indirect=True)` calls. :py:func:`metafunc.parametrize(indirect=True) <_pytest.python.Metafunc.parametrize>` calls.
Of course it's perfectly fine to combine parametrization and scoping: Of course it's perfectly fine to combine parametrization and scoping:

View File

@ -112,7 +112,7 @@ More details can be found in the `original PR <https://github.com/pytest-dev/pyt
.. 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:`Mark`. at which point markers will no longer be limited to instances of :py:class:`~_pytest.mark.Mark`.
cache plugin integrated into the core cache plugin integrated into the core

View File

@ -33,25 +33,25 @@ Consider the following scenarios:
1. Modifying the behavior of a function or the property of a class for a test e.g. 1. Modifying the behavior of a function or the property of a class for a test e.g.
there is an API call or database connection you will not make for a test but you know there is an API call or database connection you will not make for a test but you know
what the expected output should be. Use :py:meth:`monkeypatch.setattr` to patch the what the expected output should be. Use :py:meth:`monkeypatch.setattr <MonkeyPatch.setattr>` to patch the
function or property with your desired testing behavior. This can include your own functions. function or property with your desired testing behavior. This can include your own functions.
Use :py:meth:`monkeypatch.delattr` to remove the function or property for the test. Use :py:meth:`monkeypatch.delattr <MonkeyPatch.delattr>` to remove the function or property for the test.
2. Modifying the values of dictionaries e.g. you have a global configuration that 2. Modifying the values of dictionaries e.g. you have a global configuration that
you want to modify for certain test cases. Use :py:meth:`monkeypatch.setitem` to patch the you want to modify for certain test cases. Use :py:meth:`monkeypatch.setitem <MonkeyPatch.setitem>` to patch the
dictionary for the test. :py:meth:`monkeypatch.delitem` can be used to remove items. dictionary for the test. :py:meth:`monkeypatch.delitem <MonkeyPatch.delitem>` can be used to remove items.
3. Modifying environment variables for a test e.g. to test program behavior if an 3. Modifying environment variables for a test e.g. to test program behavior if an
environment variable is missing, or to set multiple values to a known variable. environment variable is missing, or to set multiple values to a known variable.
:py:meth:`monkeypatch.setenv` and :py:meth:`monkeypatch.delenv` can be used for :py:meth:`monkeypatch.setenv <MonkeyPatch.setenv>` and :py:meth:`monkeypatch.delenv <MonkeyPatch.delenv>` can be used for
these patches. these patches.
4. Use ``monkeypatch.setenv("PATH", value, prepend=os.pathsep)`` to modify ``$PATH``, and 4. Use ``monkeypatch.setenv("PATH", value, prepend=os.pathsep)`` to modify ``$PATH``, and
:py:meth:`monkeypatch.chdir` to change the context of the current working directory :py:meth:`monkeypatch.chdir <MonkeyPatch.chdir>` to change the context of the current working directory
during a test. during a test.
5. Use :py:meth:`monkeypatch.syspath_prepend` to modify ``sys.path`` which will also 5. Use :py:meth:`monkeypatch.syspath_prepend <MonkeyPatch.syspath_prepend>` to modify ``sys.path`` which will also
call :py:meth:`pkg_resources.fixup_namespace_packages` and :py:meth:`importlib.invalidate_caches`. call ``pkg_resources.fixup_namespace_packages`` and :py:func:`importlib.invalidate_caches`.
See the `monkeypatch blog post`_ for some introduction material See the `monkeypatch blog post`_ for some introduction material
and a discussion of its motivation. and a discussion of its motivation.
@ -66,10 +66,10 @@ testing, you do not want your test to depend on the running user. ``monkeypatch`
can be used to patch functions dependent on the user to always return a can be used to patch functions dependent on the user to always return a
specific value. specific value.
In this example, :py:meth:`monkeypatch.setattr` is used to patch ``Path.home`` In this example, :py:meth:`monkeypatch.setattr <MonkeyPatch.setattr>` is used to patch ``Path.home``
so that the known testing path ``Path("/abc")`` is always used when the test is run. so that the known testing path ``Path("/abc")`` is always used when the test is run.
This removes any dependency on the running user for testing purposes. This removes any dependency on the running user for testing purposes.
:py:meth:`monkeypatch.setattr` must be called before the function which will use :py:meth:`monkeypatch.setattr <MonkeyPatch.setattr>` must be called before the function which will use
the patched function is called. the patched function is called.
After the test function finishes the ``Path.home`` modification will be undone. After the test function finishes the ``Path.home`` modification will be undone.
@ -102,7 +102,7 @@ After the test function finishes the ``Path.home`` modification will be undone.
Monkeypatching returned objects: building mock classes Monkeypatching returned objects: building mock classes
------------------------------------------------------ ------------------------------------------------------
:py:meth:`monkeypatch.setattr` can be used in conjunction with classes to mock returned :py:meth:`monkeypatch.setattr <MonkeyPatch.setattr>` can be used in conjunction with classes to mock returned
objects from functions instead of values. objects from functions instead of values.
Imagine a simple function to take an API url and return the json response. Imagine a simple function to take an API url and return the json response.
@ -330,7 +330,7 @@ This behavior can be moved into ``fixture`` structures and shared across tests:
Monkeypatching dictionaries Monkeypatching dictionaries
--------------------------- ---------------------------
:py:meth:`monkeypatch.setitem` can be used to safely set the values of dictionaries :py:meth:`monkeypatch.setitem <MonkeyPatch.setitem>` can be used to safely set the values of dictionaries
to specific values during tests. Take this simplified connection string example: to specific values during tests. Take this simplified connection string example:
.. code-block:: python .. code-block:: python
@ -367,7 +367,7 @@ For testing purposes we can patch the ``DEFAULT_CONFIG`` dictionary to specific
result = app.create_connection_string() result = app.create_connection_string()
assert result == expected assert result == expected
You can use the :py:meth:`monkeypatch.delitem` to remove values. You can use the :py:meth:`monkeypatch.delitem <MonkeyPatch.delitem>` to remove values.
.. code-block:: python .. code-block:: python

View File

@ -539,14 +539,11 @@ recwarn
.. autofunction:: recwarn() .. autofunction:: recwarn()
:no-auto-options: :no-auto-options:
.. autoclass:: _pytest.recwarn.WarningsRecorder() .. autoclass:: WarningsRecorder()
:members: :members:
Each recorded warning is an instance of :class:`warnings.WarningMessage`. Each recorded warning is an instance of :class:`warnings.WarningMessage`.
.. note::
:class:`RecordedWarning` was changed from a plain class to a namedtuple in pytest 3.1
.. note:: .. note::
``DeprecationWarning`` and ``PendingDeprecationWarning`` are treated ``DeprecationWarning`` and ``PendingDeprecationWarning`` are treated
differently; see :ref:`ensuring_function_triggers`. differently; see :ref:`ensuring_function_triggers`.
@ -688,8 +685,8 @@ All runtest related hooks receive a :py:class:`pytest.Item <pytest.Item>` object
.. autofunction:: pytest_runtest_makereport .. autofunction:: pytest_runtest_makereport
For deeper understanding you may look at the default implementation of For deeper understanding you may look at the default implementation of
these hooks in :py:mod:`_pytest.runner` and maybe also these hooks in ``_pytest.runner`` and maybe also
in :py:mod:`_pytest.pdb` which interacts with :py:mod:`_pytest.capture` in ``_pytest.pdb`` which interacts with ``_pytest.capture``
and its input/output capturing in order to immediately drop and its input/output capturing in order to immediately drop
into interactive debugging when a test failure occurs. into interactive debugging when a test failure occurs.

View File

@ -367,7 +367,7 @@ warnings, or index into it to get a particular recorded warning.
.. currentmodule:: _pytest.warnings .. currentmodule:: _pytest.warnings
Full API: :class:`WarningsRecorder`. Full API: :class:`~_pytest.recwarn.WarningsRecorder`.
.. _custom_failure_messages: .. _custom_failure_messages:

View File

@ -111,7 +111,7 @@ class TempdirFactory:
_tmppath_factory = attr.ib(type=TempPathFactory) _tmppath_factory = attr.ib(type=TempPathFactory)
def mktemp(self, basename: str, numbered: bool = True) -> py.path.local: def mktemp(self, basename: str, numbered: bool = True) -> py.path.local:
"""Same as :meth:`TempPathFactory.mkdir`, but returns a ``py.path.local`` object.""" """Same as :meth:`TempPathFactory.mktemp`, but returns a ``py.path.local`` object."""
return py.path.local(self._tmppath_factory.mktemp(basename, numbered).resolve()) return py.path.local(self._tmppath_factory.mktemp(basename, numbered).resolve())
def getbasetemp(self) -> py.path.local: def getbasetemp(self) -> py.path.local: