Improved 'Declaring new hooks' section in docs. (#7782)
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
This commit is contained in:
parent
3db24893b4
commit
d3f47bf346
1
AUTHORS
1
AUTHORS
|
@ -151,6 +151,7 @@ Joshua Bronson
|
||||||
Jurko Gospodnetić
|
Jurko Gospodnetić
|
||||||
Justyna Janczyszyn
|
Justyna Janczyszyn
|
||||||
Kale Kundert
|
Kale Kundert
|
||||||
|
Kamran Ahmad
|
||||||
Karl O. Pinc
|
Karl O. Pinc
|
||||||
Katarzyna Jachim
|
Katarzyna Jachim
|
||||||
Katarzyna Król
|
Katarzyna Król
|
||||||
|
|
|
@ -614,6 +614,11 @@ among each other.
|
||||||
Declaring new hooks
|
Declaring new hooks
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
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/>`__.
|
||||||
|
|
||||||
.. currentmodule:: _pytest.hookspec
|
.. 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
|
||||||
|
@ -627,7 +632,7 @@ Hooks are usually declared as do-nothing functions that contain only
|
||||||
documentation describing when the hook will be called and what return values
|
documentation describing when the hook will be called and what return values
|
||||||
are expected. The names of the functions must start with `pytest_` otherwise pytest won't recognize them.
|
are expected. The names of the functions must start with `pytest_` otherwise pytest won't recognize them.
|
||||||
|
|
||||||
Here's an example. Let's assume this code is in the ``hooks.py`` module.
|
Here's an example. Let's assume this code is in the ``sample_hook.py`` module.
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
|
@ -643,10 +648,10 @@ class or module can then be passed to the ``pluginmanager`` using the ``pytest_a
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
def pytest_addhooks(pluginmanager):
|
def pytest_addhooks(pluginmanager):
|
||||||
""" This example assumes the hooks are grouped in the 'hooks' module. """
|
""" This example assumes the hooks are grouped in the 'sample_hook' module. """
|
||||||
from my_app.tests import hooks
|
from my_app.tests import sample_hook
|
||||||
|
|
||||||
pluginmanager.add_hookspecs(hooks)
|
pluginmanager.add_hookspecs(sample_hook)
|
||||||
|
|
||||||
For a real world example, see `newhooks.py`_ from `xdist <https://github.com/pytest-dev/pytest-xdist>`_.
|
For a real world example, see `newhooks.py`_ from `xdist <https://github.com/pytest-dev/pytest-xdist>`_.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue