Detect `pytest_` prefixed hooks

`pluggy` is deprecating the `implprefix` argument in the next major
release so implement this detection in our derived plugin manager.

Relates to pytest-dev/pluggy#145
This commit is contained in:
Tyler Goodlet 2018-05-17 20:34:33 -04:00
parent 45faaeca7a
commit d4065a9166
1 changed files with 6 additions and 1 deletions

View File

@ -177,7 +177,7 @@ class PytestPluginManager(PluginManager):
"""
def __init__(self):
super(PytestPluginManager, self).__init__("pytest", implprefix="pytest_")
super(PytestPluginManager, self).__init__("pytest")
self._conftest_plugins = set()
# state related to local conftest plugins
@ -231,6 +231,11 @@ class PytestPluginManager(PluginManager):
method = getattr(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:
for name in ("tryfirst", "trylast", "optionalhook", "hookwrapper"):
opts.setdefault(name, hasattr(method, name))