[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