Warn when implementations exist for pytest_namespace hook

This hook has been deprecated and will be removed in the future.

Fix #2639
This commit is contained in:
Bruno Oliveira 2018-07-29 21:30:49 -03:00
parent 0e47599572
commit e3d412d1f4
3 changed files with 17 additions and 3 deletions

View File

@ -0,0 +1,3 @@
``pytest_namespace`` has been deprecated.
Plugins who need this feature are suggested to import ``pytest`` and set attributes explicitly during ``pytest_configure``.

View File

@ -69,7 +69,7 @@ def main():
# if _PYTEST_SETUP_SKIP_PLUGGY_DEP is set, skip installing pluggy;
# used by tox.ini to test with pluggy master
if "_PYTEST_SETUP_SKIP_PLUGGY_DEP" not in os.environ:
install_requires.append("pluggy>=0.5,<0.8")
install_requires.append("pluggy>=0.7")
environment_marker_support_level = get_environment_marker_support_level()
if environment_marker_support_level >= 2:
install_requires.append('funcsigs;python_version<"3.0"')

View File

@ -1,6 +1,7 @@
""" hook specifications for pytest plugins, invoked from main.py and builtin plugins. """
from pluggy import HookspecMarker
from .deprecated import RemovedInPytest4Warning
hookspec = HookspecMarker("pytest")
@ -22,10 +23,14 @@ def pytest_addhooks(pluginmanager):
"""
@hookspec(historic=True)
@hookspec(
historic=True,
warn_on_impl=RemovedInPytest4Warning(
"pytest_namespace is deprecated and will be removed soon"
),
)
def pytest_namespace():
"""
(**Deprecated**) this hook causes direct monkeypatching on pytest, its use is strongly discouraged
return dict of name->object to be made globally available in
the pytest namespace.
@ -33,6 +38,12 @@ def pytest_namespace():
.. note::
This hook is incompatible with ``hookwrapper=True``.
.. warning::
This hook has been **deprecated** and will be removed in pytest 4.0.
Plugins who need this feature are suggested
to import ``pytest`` and set attributes explicitly during ``pytest_configure``.
"""