Merge pull request #4421 from RonnyPfannschmidt/remove-pytest-namespace
remove pytest namespace hook
This commit is contained in:
commit
50e3783f07
|
@ -0,0 +1 @@
|
|||
Remove the implementation of the pytest_namespace hook.
|
|
@ -610,13 +610,6 @@ class Config(object):
|
|||
self.pluginmanager.register(self, "pytestconfig")
|
||||
self._configured = False
|
||||
self.invocation_dir = py.path.local()
|
||||
|
||||
def do_setns(dic):
|
||||
import pytest
|
||||
|
||||
setns(pytest, dic)
|
||||
|
||||
self.hook.pytest_namespace.call_historic(do_setns, {})
|
||||
self.hook.pytest_addoption.call_historic(kwargs=dict(parser=self._parser))
|
||||
|
||||
def add_cleanup(self, func):
|
||||
|
|
|
@ -113,9 +113,6 @@ PYTEST_PLUGINS_FROM_NON_TOP_LEVEL_CONFTEST = RemovedInPytest4Warning(
|
|||
"Please move it to the top level conftest file instead."
|
||||
)
|
||||
|
||||
PYTEST_NAMESPACE = RemovedInPytest4Warning(
|
||||
"pytest_namespace is deprecated and will be removed soon"
|
||||
)
|
||||
|
||||
PYTEST_ENSURETEMP = RemovedInPytest4Warning(
|
||||
"pytest/tmpdir_factory.ensuretemp is deprecated, \n"
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
""" hook specifications for pytest plugins, invoked from main.py and builtin plugins. """
|
||||
from pluggy import HookspecMarker
|
||||
|
||||
from .deprecated import PYTEST_NAMESPACE
|
||||
|
||||
|
||||
hookspec = HookspecMarker("pytest")
|
||||
|
||||
|
@ -24,32 +22,6 @@ def pytest_addhooks(pluginmanager):
|
|||
"""
|
||||
|
||||
|
||||
@hookspec(historic=True, warn_on_impl=PYTEST_NAMESPACE)
|
||||
def pytest_namespace():
|
||||
"""
|
||||
return dict of name->object to be made globally available in
|
||||
the pytest namespace.
|
||||
|
||||
This hook is called at plugin registration time.
|
||||
|
||||
.. note::
|
||||
This hook is incompatible with ``hookwrapper=True``.
|
||||
|
||||
.. warning::
|
||||
This hook has been **deprecated** and will be removed in pytest 4.0.
|
||||
|
||||
Plugins whose users depend on the current namespace functionality should prepare to migrate to a
|
||||
namespace they actually own.
|
||||
|
||||
To support the migration it's suggested to trigger ``DeprecationWarnings`` for objects they put into the
|
||||
pytest namespace.
|
||||
|
||||
A stopgap measure to avoid the warning is to monkeypatch the ``pytest`` module, but just as the
|
||||
``pytest_namespace`` hook this should be seen as a temporary measure to be removed in future versions after
|
||||
an appropriate transition period.
|
||||
"""
|
||||
|
||||
|
||||
@hookspec(historic=True)
|
||||
def pytest_plugin_registered(plugin, manager):
|
||||
""" a new pytest plugin got registered.
|
||||
|
|
|
@ -59,37 +59,6 @@ class TestPytestPluginInteractions(object):
|
|||
assert res.ret != 0
|
||||
res.stderr.fnmatch_lines(["*did not find*sys*"])
|
||||
|
||||
def test_namespace_early_from_import(self, testdir):
|
||||
p = testdir.makepyfile(
|
||||
"""
|
||||
from pytest import Item
|
||||
from pytest import Item as Item2
|
||||
assert Item is Item2
|
||||
"""
|
||||
)
|
||||
result = testdir.runpython(p)
|
||||
assert result.ret == 0
|
||||
|
||||
@pytest.mark.filterwarnings("ignore:pytest_namespace is deprecated")
|
||||
def test_do_ext_namespace(self, testdir):
|
||||
testdir.makeconftest(
|
||||
"""
|
||||
def pytest_namespace():
|
||||
return {'hello': 'world'}
|
||||
"""
|
||||
)
|
||||
p = testdir.makepyfile(
|
||||
"""
|
||||
from pytest import hello
|
||||
import pytest
|
||||
def test_hello():
|
||||
assert hello == "world"
|
||||
assert 'hello' in pytest.__all__
|
||||
"""
|
||||
)
|
||||
reprec = testdir.inline_run(p)
|
||||
reprec.assertoutcome(passed=1)
|
||||
|
||||
def test_do_option_postinitialize(self, testdir):
|
||||
config = testdir.parseconfigure()
|
||||
assert not hasattr(config.option, "test123")
|
||||
|
@ -190,17 +159,6 @@ class TestPytestPluginInteractions(object):
|
|||
assert "deprecated" in warnings[-1]
|
||||
|
||||
|
||||
def test_namespace_has_default_and_env_plugins(testdir):
|
||||
p = testdir.makepyfile(
|
||||
"""
|
||||
import pytest
|
||||
pytest.mark
|
||||
"""
|
||||
)
|
||||
result = testdir.runpython(p)
|
||||
assert result.ret == 0
|
||||
|
||||
|
||||
def test_default_markers(testdir):
|
||||
result = testdir.runpytest("--markers")
|
||||
result.stdout.fnmatch_lines(["*tryfirst*first*", "*trylast*last*"])
|
||||
|
|
Loading…
Reference in New Issue