Merge pull request #3487 from tgoodlet/detect_pytest_hook_prefix

Detect `pytest_` prefixed hooks
This commit is contained in:
Ronny Pfannschmidt 2018-05-22 21:36:58 +02:00 committed by GitHub
commit 6c8d46d8ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View File

@ -177,7 +177,7 @@ class PytestPluginManager(PluginManager):
""" """
def __init__(self): def __init__(self):
super(PytestPluginManager, self).__init__("pytest", implprefix="pytest_") super(PytestPluginManager, self).__init__("pytest")
self._conftest_plugins = set() self._conftest_plugins = set()
# state related to local conftest plugins # state related to local conftest plugins
@ -231,6 +231,11 @@ class PytestPluginManager(PluginManager):
method = getattr(plugin, name) method = getattr(plugin, name)
opts = super(PytestPluginManager, self).parse_hookimpl_opts(plugin, name) opts = super(PytestPluginManager, self).parse_hookimpl_opts(plugin, name)
# collect unmarked hooks as long as they have the `pytest_' prefix
if opts is None and name.startswith("pytest_"):
opts = {}
if opts is not None: if opts is not None:
for name in ("tryfirst", "trylast", "optionalhook", "hookwrapper"): for name in ("tryfirst", "trylast", "optionalhook", "hookwrapper"):
opts.setdefault(name, hasattr(method, name)) opts.setdefault(name, hasattr(method, name))

View File

@ -0,0 +1,3 @@
Detect `pytest_` prefixed hooks using the internal plugin
manager since ``pluggy`` is deprecating the ``implprefix``
argument to ``PluginManager``.