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