Skip to content

Commit

Permalink
Don't ignore ImportError with setuptools plugins
Browse files Browse the repository at this point in the history
This was added in b2d66b9 but is a bad
idea. When a plugin can't be imported, commandline options (optionally
set in pytest.ini) could be undefined, which means pytest bails out
much earlier before showing the warning, which is hard to debug.

Fixes pytest-dev#1479, also see pytest-dev#1307 and pytest-dev#1497
  • Loading branch information
The-Compiler committed May 23, 2016
1 parent 6f98cd6 commit ec8a46a
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
5 changes: 1 addition & 4 deletions _pytest/config.py
Expand Up @@ -923,10 +923,7 @@ def _preparse(self, args, addopts=True):
args[:] = self.getini("addopts") + args
self._checkversion()
self.pluginmanager.consider_preparse(args)
try:
self.pluginmanager.load_setuptools_entrypoints("pytest11")
except ImportError as e:
self.warn("I2", "could not load setuptools entry import: %s" % (e,))
self.pluginmanager.load_setuptools_entrypoints("pytest11")
self.pluginmanager.consider_env()
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:
Expand Down
17 changes: 17 additions & 0 deletions testing/test_config.py
Expand Up @@ -391,6 +391,23 @@ class PseudoPlugin:
plugin = config.pluginmanager.getplugin("mytestplugin")
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):
pkg_resources = pytest.importorskip("pkg_resources")
def my_iter(name):
Expand Down

0 comments on commit ec8a46a

Please sign in to comment.