[pypy-svn] r33049 - pypy/dist/pypy/objspace/test
auc at codespeak.net
auc at codespeak.net
Mon Oct 9 14:55:40 CEST 2006
Author: auc
Date: Mon Oct 9 14:55:39 2006
New Revision: 33049
Modified:
pypy/dist/pypy/objspace/test/_test_logic_build.py
Log:
replay failed tests with debug info on
Modified: pypy/dist/pypy/objspace/test/_test_logic_build.py
==============================================================================
--- pypy/dist/pypy/objspace/test/_test_logic_build.py (original)
+++ pypy/dist/pypy/objspace/test/_test_logic_build.py Mon Oct 9 14:55:39 2006
@@ -15,21 +15,25 @@
print "skipping because", desc
raise Skip
-def run_tests(tm):
- classes = [obj for name, obj in inspect.getmembers(tm)
- if isinstance(obj, type)]
+def get_test_classes():
+ return [obj for name, obj in inspect.getmembers(tm)
+ if isinstance(obj, type)]
+
+def get_test_methods(klass):
+ return [(name, meth)
+ for name, meth in inspect.getmembers(klass())
+ if not name.startswith('_')]
+def run_tests(tm):
+
tm.raises = raises
tm.skip = skip
-
+
successes = []
failures = []
skipped = []
-
- for klass in classes:
- tests = [(name, meth) for name, meth in inspect.getmembers(klass())
- if not name.startswith('_')]
+ for tests in [get_test_methods(cl) for cl in get_test_classes()] :
for name, meth in tests:
if name == 'setup_class': continue
try:
@@ -37,7 +41,7 @@
except Skip:
skipped.append(name)
except Exception, e:
- failures.append((name, e))
+ failures.append((name, meth, e))
else:
successes.append(name)
@@ -47,12 +51,17 @@
print
if failures:
print "Failures :"
- for name, exc in failures:
+ for name, _, exc in failures:
print '', name, "failed because", str(exc)
print
if skipped:
print "Skipped"
print '', '\n '.join(skipped)
+
+ # replay failures with more info
+ switch_debug_info()
+ for name, meth, _ in failures:
+ meth()
if __name__ == __name__:
import sys
More information about the Pypy-commit
mailing list