[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