Skip to content

Commit

Permalink
Improved 'Declaring new hooks' section in docs. (#7782)
Browse files Browse the repository at this point in the history
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
  • Loading branch information
kamahmad and nicoddemus committed Sep 23, 2020
1 parent 3db2489 commit d3f47bf
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Expand Up @@ -151,6 +151,7 @@ Joshua Bronson
Jurko Gospodnetić
Justyna Janczyszyn
Kale Kundert
Kamran Ahmad
Karl O. Pinc
Katarzyna Jachim
Katarzyna Król
Expand Down
13 changes: 9 additions & 4 deletions doc/en/writing_plugins.rst
Expand Up @@ -614,6 +614,11 @@ among each other.
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

Plugins and ``conftest.py`` files may declare new hooks that can then be
Expand All @@ -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
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
Expand All @@ -643,10 +648,10 @@ class or module can then be passed to the ``pluginmanager`` using the ``pytest_a
.. code-block:: python
def pytest_addhooks(pluginmanager):
""" This example assumes the hooks are grouped in the 'hooks' module. """
from my_app.tests import hooks
""" This example assumes the hooks are grouped in the 'sample_hook' module. """
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>`_.

Expand Down

0 comments on commit d3f47bf

Please sign in to comment.