revert 1735 - fix issue95 differently: just shift the offending zlib
import (and others) to happen when they are actually needed --HG-- branch : trunk
This commit is contained in:
parent
c3bd29b490
commit
2229d2d947
|
@ -6,6 +6,9 @@ Changes between 1.3.0 and 1.3.1
|
||||||
to the underlying capturing functionality to avoid race
|
to the underlying capturing functionality to avoid race
|
||||||
conditions).
|
conditions).
|
||||||
|
|
||||||
|
- fix issue95: late-import zlib so that it's not required
|
||||||
|
for general py.test startup.
|
||||||
|
|
||||||
- make py.test.cmdline.main() return the exitstatus
|
- make py.test.cmdline.main() return the exitstatus
|
||||||
instead of raising (which is still done by py.cmdline.pytest())
|
instead of raising (which is still done by py.cmdline.pytest())
|
||||||
and make it so that py.test.cmdline.main() can be called
|
and make it so that py.test.cmdline.main() can be called
|
||||||
|
|
|
@ -4,14 +4,7 @@ generate standalone test script to be distributed along with an application.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import zlib
|
|
||||||
import base64
|
|
||||||
import sys
|
import sys
|
||||||
try:
|
|
||||||
import pickle
|
|
||||||
except Importerror:
|
|
||||||
import cPickle as pickle
|
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
group = parser.getgroup("debugconfig")
|
group = parser.getgroup("debugconfig")
|
||||||
group.addoption("--genscript", action="store", default=None,
|
group.addoption("--genscript", action="store", default=None,
|
||||||
|
@ -30,6 +23,13 @@ def pytest_configure(config):
|
||||||
raise SystemExit(0)
|
raise SystemExit(0)
|
||||||
|
|
||||||
def main(pybasedir, outfile, infile):
|
def main(pybasedir, outfile, infile):
|
||||||
|
import base64
|
||||||
|
import zlib
|
||||||
|
try:
|
||||||
|
import pickle
|
||||||
|
except Importerror:
|
||||||
|
import cPickle as pickle
|
||||||
|
|
||||||
outfile = str(outfile)
|
outfile = str(outfile)
|
||||||
infile = str(infile)
|
infile = str(infile)
|
||||||
assert os.path.isabs(outfile)
|
assert os.path.isabs(outfile)
|
||||||
|
|
|
@ -140,13 +140,6 @@ class PluginManager(object):
|
||||||
except py.test.skip.Exception:
|
except py.test.skip.Exception:
|
||||||
e = py.std.sys.exc_info()[1]
|
e = py.std.sys.exc_info()[1]
|
||||||
self._hints.append("skipped plugin %r: %s" %((modname, e.msg)))
|
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:
|
else:
|
||||||
check_old_use(mod, modname)
|
check_old_use(mod, modname)
|
||||||
self.register(mod)
|
self.register(mod)
|
||||||
|
|
|
@ -37,4 +37,3 @@ def test_rundist(testdir, pytestconfig, standalone):
|
||||||
result.stdout.fnmatch_lines([
|
result.stdout.fnmatch_lines([
|
||||||
"*1 passed*",
|
"*1 passed*",
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
|
@ -489,29 +489,3 @@ class TestHookRelay:
|
||||||
res = mcm.hello(arg=3)
|
res = mcm.hello(arg=3)
|
||||||
assert res == 4
|
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*",
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue