fix issue95 - treat a failing pytest_genscript import

as non-critical, give a hint.

--HG--
branch : trunk
This commit is contained in:
holger krekel 2010-05-19 16:22:23 +02:00
parent f552749de6
commit c3bd29b490
3 changed files with 34 additions and 0 deletions

View File

@ -140,6 +140,13 @@ class PluginManager(object):
except py.test.skip.Exception:
e = py.std.sys.exc_info()[1]
self._hints.append("skipped plugin %r: %s" %((modname, e.msg)))
except ImportError:
e = py.std.sys.exc_info()[1]
if "zlib" in str(e) and modname == "pytest_genscript":
self._hints.append("skipped plugin %r: failed to import %r" %(
(modname, str(e))))
else:
raise
else:
check_old_use(mod, modname)
self.register(mod)

View File

@ -37,3 +37,4 @@ def test_rundist(testdir, pytestconfig, standalone):
result.stdout.fnmatch_lines([
"*1 passed*",
])

View File

@ -489,3 +489,29 @@ class TestHookRelay:
res = mcm.hello(arg=3)
assert res == 4
def test_pluginmanager_import_error_zlib(testdir):
p = testdir.makepyfile("""
try:
import builtins
except ImportError:
import __builtin__ as builtins
oldimport = builtins.__import__
def import_(name, *args):
#print "import", name, "start"
if name == "zlib":
raise ImportError("zlib")
mod = oldimport(name, *args)
#print "import", name, "successful"
return mod
if __name__ == "__main__":
builtins.__import__ = import_
import py
py.test.cmdline.main(["--traceconfig"])
""")
result = testdir.runpython(p)
result.stdout.fnmatch_lines([
"*skipped plugin*genscript*import*zlib*",
])