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:
holger krekel 2010-05-19 16:42:22 +02:00
parent c3bd29b490
commit 2229d2d947
5 changed files with 10 additions and 41 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

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

View File

@ -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*",
])