Merge pull request #1564 from The-Compiler/issue1479
Don't ignore ImportError when importing setuptools plugins
This commit is contained in:
commit
70ea3ce7f7
|
@ -923,10 +923,7 @@ class Config(object):
|
||||||
args[:] = self.getini("addopts") + args
|
args[:] = self.getini("addopts") + args
|
||||||
self._checkversion()
|
self._checkversion()
|
||||||
self.pluginmanager.consider_preparse(args)
|
self.pluginmanager.consider_preparse(args)
|
||||||
try:
|
self.pluginmanager.load_setuptools_entrypoints("pytest11")
|
||||||
self.pluginmanager.load_setuptools_entrypoints("pytest11")
|
|
||||||
except ImportError as e:
|
|
||||||
self.warn("I2", "could not load setuptools entry import: %s" % (e,))
|
|
||||||
self.pluginmanager.consider_env()
|
self.pluginmanager.consider_env()
|
||||||
self.known_args_namespace = ns = self._parser.parse_known_args(args, namespace=self.option.copy())
|
self.known_args_namespace = ns = self._parser.parse_known_args(args, namespace=self.option.copy())
|
||||||
if self.known_args_namespace.confcutdir is None and self.inifile:
|
if self.known_args_namespace.confcutdir is None and self.inifile:
|
||||||
|
|
|
@ -391,6 +391,23 @@ def test_preparse_ordering_with_setuptools(testdir, monkeypatch):
|
||||||
plugin = config.pluginmanager.getplugin("mytestplugin")
|
plugin = config.pluginmanager.getplugin("mytestplugin")
|
||||||
assert plugin.x == 42
|
assert plugin.x == 42
|
||||||
|
|
||||||
|
|
||||||
|
def test_setuptools_importerror_issue1479(testdir, monkeypatch):
|
||||||
|
pkg_resources = pytest.importorskip("pkg_resources")
|
||||||
|
def my_iter(name):
|
||||||
|
assert name == "pytest11"
|
||||||
|
class EntryPoint:
|
||||||
|
name = "mytestplugin"
|
||||||
|
dist = None
|
||||||
|
def load(self):
|
||||||
|
raise ImportError("Don't hide me!")
|
||||||
|
return iter([EntryPoint()])
|
||||||
|
|
||||||
|
monkeypatch.setattr(pkg_resources, 'iter_entry_points', my_iter)
|
||||||
|
with pytest.raises(ImportError):
|
||||||
|
testdir.parseconfig()
|
||||||
|
|
||||||
|
|
||||||
def test_plugin_preparse_prevents_setuptools_loading(testdir, monkeypatch):
|
def test_plugin_preparse_prevents_setuptools_loading(testdir, monkeypatch):
|
||||||
pkg_resources = pytest.importorskip("pkg_resources")
|
pkg_resources = pytest.importorskip("pkg_resources")
|
||||||
def my_iter(name):
|
def my_iter(name):
|
||||||
|
|
Loading…
Reference in New Issue