diff --git a/testing/test_pluginmanager.py b/testing/test_pluginmanager.py index 0bee415f2..81a3a291e 100644 --- a/testing/test_pluginmanager.py +++ b/testing/test_pluginmanager.py @@ -380,3 +380,20 @@ class TestPytestPluginManagerBootstrapming(object): pytestpm.consider_preparse(["xyz", "-p", "no:abc"]) l2 = pytestpm.get_plugins() assert 42 not in l2 + + def test_plugin_prevent_register_stepwise_on_cacheprovider_unregister(self, pytestpm): + """ From PR #4304 : The only way to unregister a module is documented at + the end of https://docs.pytest.org/en/latest/plugins.html. + + When unregister cacheprovider, then unregister stepwise too + """ + pytestpm.register(42, name="cacheprovider") + pytestpm.register(43, name="stepwise") + l1 = pytestpm.get_plugins() + assert 42 in l1 + assert 43 in l1 + pytestpm.consider_preparse(["xyz", "-p", "no:cacheprovider"]) + l2 = pytestpm.get_plugins() + assert 42 not in l2 + assert 43 not in l2 +