[py-svn] r58300 - in py/trunk/py/test: . testing
hpk at codespeak.net
hpk at codespeak.net
Sun Sep 21 15:43:03 CEST 2008
Author: hpk
Date: Sun Sep 21 15:43:01 2008
New Revision: 58300
Modified:
py/trunk/py/test/outcome.py
py/trunk/py/test/testing/acceptance_test.py
py/trunk/py/test/testing/test_outcome.py
Log:
adding option to specify namespace for ifraises execution.
Modified: py/trunk/py/test/outcome.py
==============================================================================
--- py/trunk/py/test/outcome.py (original)
+++ py/trunk/py/test/outcome.py Sun Sep 21 15:43:01 2008
@@ -49,19 +49,22 @@
__tracebackhide__ = True
raise Exit(msg)
-def skip(msg="", ifraises=None):
+def skip(msg="", ifraises=None, ns=None):
""" (conditionally) skip this test/module/conftest.
+ msg: use this message when skipping.
ifraises:
if "exec ifraises in {'py': py}" raises an exception
skip this test.
- msg: use this message when skipping.
+ ns: use this namespace when executing ifraises
"""
__tracebackhide__ = True
if ifraises is not None:
ifraises = py.code.Source(ifraises).compile()
+ if ns is None:
+ ns = {}
try:
- exec ifraises in {'py': py}
+ exec ifraises in ns
except (KeyboardInterrupt, SystemExit):
raise
except Exception, e:
Modified: py/trunk/py/test/testing/acceptance_test.py
==============================================================================
--- py/trunk/py/test/testing/acceptance_test.py (original)
+++ py/trunk/py/test/testing/acceptance_test.py Sun Sep 21 15:43:01 2008
@@ -387,10 +387,7 @@
class TestInteractive(AcceptBase):
def getspawn(self):
- try:
- import pexpect
- except ImportError:
- py.test.skip("cannot import pexpect")
+ py.test.skip(ifraises="import pexpect", ns=globals())
def spawn(cmd):
return pexpect.spawn(cmd, logfile=self.tmpdir.join("spawn.out").open("w"))
return spawn
Modified: py/trunk/py/test/testing/test_outcome.py
==============================================================================
--- py/trunk/py/test/testing/test_outcome.py (original)
+++ py/trunk/py/test/testing/test_outcome.py Sun Sep 21 15:43:01 2008
@@ -76,6 +76,11 @@
assert excinfo.traceback[-1].ishidden()
assert excinfo.value.msg.startswith("ImportError")
+def test_skip_ifraises_ns():
+ d = {}
+ py.test.skip(ns=d, ifraises="import py")
+ assert d['py'] == py
+
def test_skip_ifraises_syntaxerror():
try:
excinfo = py.test.raises(SyntaxError, '''
More information about the pytest-commit
mailing list