Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

can we define pytest hooks outside conftest.py?

i did some research in the sites below but i haven't still figured out if we can define pytest hooks (e.g. pytest_runtest_makereport) other than in the conftest.py file. basically, what i am trying to figure out is if i avoid duplicating conftest.py files by defining a hook inside a base class, for example, so other projects (or classes) consuming this base class can inherit these hooks.

thanks a lot.

references i've used:

  • http://pytest.org/latest/plugins.html
  • http://pytest.org/latest/example/simple.html
  • several other stack overflow pages talking about hooks
like image 292
Pedro Carneiro Avatar asked Sep 28 '22 15:09

Pedro Carneiro


1 Answers

The recommended way would be to move this hooks into an appropriate plugin, but you can force a module to be interpreted as one by declaring a pytest_plugins variable in a conftest file in your project:

pytest_plugins = ['myproject.plugin'] # myproject.plugin contains hooks

Or you can use the -p flag to py.test:

py.test -p myproject.module

Note that the last option can be configured in your pytest.ini as well:

[pytest]
addopts = -p myproject.module
like image 175
Bruno Oliveira Avatar answered Oct 18 '22 04:10

Bruno Oliveira