shift pytest_configure/unconfigure/addoption/namespace hook calling to config object.

The _pytest.config module itself is no longer a plugin but the actual
config instance is plugin-registered as ``pytestconfig``.
This allows to put most pytest specific logic to _pytest.config instead
of in the core pluginmanager.
This commit is contained in:
holger krekel
2013-09-30 13:14:14 +02:00
parent 694c6fd0e7
commit d946299b0a
8 changed files with 81 additions and 83 deletions

View File

@@ -261,13 +261,13 @@ class TestBootstrapping:
assert pm.getplugins()
my2 = MyPlugin()
pm.register(my2)
assert pm.getplugins()[1:] == [my, my2]
assert pm.getplugins()[2:] == [my, my2]
assert pm.isregistered(my)
assert pm.isregistered(my2)
pm.unregister(my)
assert not pm.isregistered(my)
assert pm.getplugins()[1:] == [my2]
assert pm.getplugins()[2:] == [my2]
def test_listattr(self):
plugins = PluginManager()
@@ -319,7 +319,7 @@ class TestPytestPluginInteractions:
def pytest_myhook(xyz):
return xyz + 1
""")
config = testdir.Config(PluginManager(load=True))
config = PluginManager(load=True).config
config._conftest.importconftest(conf)
print(config.pluginmanager.getplugins())
res = config.hook.pytest_myhook(xyz=10)
@@ -383,13 +383,13 @@ class TestPytestPluginInteractions:
config.pluginmanager.register(A())
assert len(l) == 0
config.pluginmanager.do_configure(config=config)
config.do_configure()
assert len(l) == 1
config.pluginmanager.register(A()) # leads to a configured() plugin
assert len(l) == 2
assert l[0] != l[1]
config.pluginmanager.do_unconfigure(config=config)
config.do_unconfigure()
config.pluginmanager.register(A())
assert len(l) == 2