示例#1
0
 def test_canonical_import(self, monkeypatch):
     mod = py.std.types.ModuleType("pytest_xyz")
     monkeypatch.setitem(py.std.sys.modules, 'pytest_xyz', mod)
     pm = PytestPluginManager()
     pm.import_plugin('pytest_xyz')
     assert pm.get_plugin('pytest_xyz') == mod
     assert pm.is_registered(mod)
    def test_import_plugin_importname(self, pytester: Pytester,
                                      pytestpm: PytestPluginManager) -> None:
        pytest.raises(ImportError, pytestpm.import_plugin, "qweqwex.y")
        pytest.raises(ImportError, pytestpm.import_plugin, "pytest_qweqwx.y")

        pytester.syspathinsert()
        pluginname = "pytest_hello"
        pytester.makepyfile(**{pluginname: ""})
        pytestpm.import_plugin("pytest_hello")
        len1 = len(pytestpm.get_plugins())
        pytestpm.import_plugin("pytest_hello")
        len2 = len(pytestpm.get_plugins())
        assert len1 == len2
        plugin1 = pytestpm.get_plugin("pytest_hello")
        assert plugin1.__name__.endswith("pytest_hello")
        plugin2 = pytestpm.get_plugin("pytest_hello")
        assert plugin2 is plugin1
示例#3
0
 def test_consider_module(self, testdir,
                          pytestpm: PytestPluginManager) -> None:
     testdir.syspathinsert()
     testdir.makepyfile(pytest_p1="#")
     testdir.makepyfile(pytest_p2="#")
     mod = types.ModuleType("temp")
     mod.__dict__["pytest_plugins"] = ["pytest_p1", "pytest_p2"]
     pytestpm.consider_module(mod)
     assert pytestpm.get_plugin("pytest_p1").__name__ == "pytest_p1"
     assert pytestpm.get_plugin("pytest_p2").__name__ == "pytest_p2"
    def test_import_plugin_dotted_name(self, pytester: Pytester,
                                       pytestpm: PytestPluginManager) -> None:
        pytest.raises(ImportError, pytestpm.import_plugin, "qweqwex.y")
        pytest.raises(ImportError, pytestpm.import_plugin, "pytest_qweqwex.y")

        pytester.syspathinsert()
        pytester.mkpydir("pkg").joinpath("plug.py").write_text("x=3")
        pluginname = "pkg.plug"
        pytestpm.import_plugin(pluginname)
        mod = pytestpm.get_plugin("pkg.plug")
        assert mod.x == 3
 def test_consider_env_plugin_instantiation(
     self,
     pytester: Pytester,
     monkeypatch: MonkeyPatch,
     pytestpm: PytestPluginManager,
 ) -> None:
     pytester.syspathinsert()
     pytester.makepyfile(xy123="#")
     monkeypatch.setitem(os.environ, "PYTEST_PLUGINS", "xy123")
     l1 = len(pytestpm.get_plugins())
     pytestpm.consider_env()
     l2 = len(pytestpm.get_plugins())
     assert l2 == l1 + 1
     assert pytestpm.get_plugin("xy123")
     pytestpm.consider_env()
     l3 = len(pytestpm.get_plugins())
     assert l2 == l3