[pypy-svn] r61330 - in pypy/trunk: lib-python pypy/tool/pytest/run-script

pedronis at codespeak.net pedronis at codespeak.net
Sun Jan 25 13:43:11 CET 2009


Author: pedronis
Date: Sun Jan 25 13:43:11 2009
New Revision: 61330

Modified:
   pypy/trunk/lib-python/conftest.py
   pypy/trunk/pypy/tool/pytest/run-script/regrverbose.py
Log:
slightly messy but in-style support to acknowledge top-level TestSkipped(and subclasses) skips
 


Modified: pypy/trunk/lib-python/conftest.py
==============================================================================
--- pypy/trunk/lib-python/conftest.py	(original)
+++ pypy/trunk/lib-python/conftest.py	Sun Jan 25 13:43:11 2009
@@ -614,7 +614,10 @@
             else:
                 msg = regrtest.skip
             py.test.skip(msg)
-        exit_status, test_stdout, test_stderr = self.getresult(regrtest) 
+        (skipped, exit_status, test_stdout,
+                               test_stderr) = self.getresult(regrtest)
+        if skipped:
+            py.test.skip(test_stderr.splitlines()[-1])
         if exit_status:
             raise self.ExternalFailure(test_stdout, test_stderr)
 
@@ -645,9 +648,12 @@
     def getresult(self, regrtest): 
         cmd = self.getinvocation(regrtest) 
         exit_status, test_stdout, test_stderr = self.getstatusouterr(cmd) 
+        skipped = False
         timedout = test_stderr.rfind(26*"=" + "timedout" + 26*"=") != -1 
         if not timedout: 
             timedout = test_stderr.rfind("KeyboardInterrupt") != -1
+        if test_stderr.rfind(26*"=" + "skipped" + 26*"=") != -1:
+            skipped = True
         outcome = 'OK'
         expectedpath = regrtest.getoutputpath()
         if not exit_status: 
@@ -668,7 +674,7 @@
         else: 
             outcome = "ERR"
         
-        return exit_status, test_stdout, test_stderr
+        return skipped, exit_status, test_stdout, test_stderr
 
     def _keywords(self):
         lst = list(py.test.collect.Item._keywords(self))

Modified: pypy/trunk/pypy/tool/pytest/run-script/regrverbose.py
==============================================================================
--- pypy/trunk/pypy/tool/pytest/run-script/regrverbose.py	(original)
+++ pypy/trunk/pypy/tool/pytest/run-script/regrverbose.py	Sun Jan 25 13:43:11 2009
@@ -5,9 +5,13 @@
 sys.argv[:] = sys.argv[2:]
 
 modname = sys.argv[0] 
-impname = 'test.' + modname 
-mod = __import__(impname, globals(), locals(), [modname])
-indirect_test = getattr(mod, 'test_main', None)
-if indirect_test is not None:
-    indirect_test()
+impname = 'test.' + modname
+try:
+    mod = __import__(impname, globals(), locals(), [modname])
+    indirect_test = getattr(mod, 'test_main', None)
+    if indirect_test is not None:
+        indirect_test()
+except test_support.TestSkipped:
+    sys.stderr.write("="*26 + "skipped" + "="*26 + "\n")
+    raise
 # else the test already ran during import 



More information about the Pypy-commit mailing list