summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrien Di Mascio <Adrien.DiMascio@logilab.fr>2009-07-29 11:46:34 +0200
committerAdrien Di Mascio <Adrien.DiMascio@logilab.fr>2009-07-29 11:46:34 +0200
commitdaca0d1543e91bec9cdcef0f68e28f70271c1779 (patch)
treec4bf350a35c788c6e051b7544302838d54f3f04f
parent71f80b37c405e672f25b25beec42c09f7d2bd13e (diff)
downloadlogilab-common-daca0d1543e91bec9cdcef0f68e28f70271c1779.tar.gz
[pytest] fix batchmode exeution, don't capture streams
-rw-r--r--pytest.py17
-rw-r--r--testlib.py62
2 files changed, 37 insertions, 42 deletions
diff --git a/pytest.py b/pytest.py
index db43bb8..d31410f 100644
--- a/pytest.py
+++ b/pytest.py
@@ -413,15 +413,10 @@ succeeded test file :", osp.join(os.getcwd(),testlib.FILE_RESTART)
succeeded test file :", osp.join(os.getcwd(),testlib.FILE_RESTART)
raise e
modname = osp.basename(filename)[:-3]
- if batchmode:
- from cStringIO import StringIO
- outstream = StringIO()
- else:
- outstream = sys.stderr
try:
- print >> outstream, (' %s ' % osp.basename(filename)).center(70, '=')
+ print >> sys.stderr, (' %s ' % osp.basename(filename)).center(70, '=')
except TypeError: # < py 2.4 bw compat
- print >> outstream, (' %s ' % osp.basename(filename)).center(70)
+ print >> sys.stderr, (' %s ' % osp.basename(filename)).center(70)
try:
tstart, cstart = time(), clock()
try:
@@ -438,17 +433,13 @@ succeeded test file :", osp.join(os.getcwd(),testlib.FILE_RESTART)
return None
except Exception:
self.report.failed_to_test_module(filename)
- print >> outstream, 'unhandled exception occured while testing', modname
+ print >> sys.stderr, 'unhandled exception occured while testing', modname
import traceback
- traceback.print_exc(file=outstream)
- if batchmode:
- print >> sys.stderr, outstream.getvalue()
+ traceback.print_exc(file=sys.stderr)
return None
tend, cend = time(), clock()
ttime, ctime = (tend - tstart), (cend - cstart)
- if testprog.result.testsRun and batchmode:
- print >> sys.stderr, outstream.getvalue()
self.report.feed(filename, testprog.result, ttime, ctime)
return testprog
finally:
diff --git a/testlib.py b/testlib.py
index 59957e5..7d02cd4 100644
--- a/testlib.py
+++ b/testlib.py
@@ -521,7 +521,8 @@ class SkipAwareTextTestRunner(unittest.TextTestRunner):
def __init__(self, stream=sys.stderr, verbosity=1,
exitfirst=False, capture=False, printonly=None,
pdbmode=False, cvg=None, test_pattern=None,
- skipped_patterns=(), colorize=False, options=None):
+ skipped_patterns=(), colorize=False, batchmode=False,
+ options=None):
super(SkipAwareTextTestRunner, self).__init__(stream=stream,
verbosity=verbosity)
self.exitfirst = exitfirst
@@ -532,6 +533,7 @@ class SkipAwareTextTestRunner(unittest.TextTestRunner):
self.test_pattern = test_pattern
self.skipped_patterns = skipped_patterns
self.colorize = colorize
+ self.batchmode = batchmode
self.options = options
def _this_is_skipped(self, testedname):
@@ -594,35 +596,36 @@ class SkipAwareTextTestRunner(unittest.TextTestRunner):
stopTime = time.time()
timeTaken = stopTime - startTime
result.printErrors()
- self.stream.writeln(result.separator2)
- run = result.testsRun
- self.stream.writeln("Ran %d test%s in %.3fs" %
- (run, run != 1 and "s" or "", timeTaken))
- self.stream.writeln()
- if not result.wasSuccessful():
- if self.colorize:
- self.stream.write(textutils.colorize_ansi("FAILED", color='red'))
- else:
- self.stream.write("FAILED")
- else:
- if self.colorize:
- self.stream.write(textutils.colorize_ansi("OK", color='green'))
+ if not self.batchmode:
+ self.stream.writeln(result.separator2)
+ run = result.testsRun
+ self.stream.writeln("Ran %d test%s in %.3fs" %
+ (run, run != 1 and "s" or "", timeTaken))
+ self.stream.writeln()
+ if not result.wasSuccessful():
+ if self.colorize:
+ self.stream.write(textutils.colorize_ansi("FAILED", color='red'))
+ else:
+ self.stream.write("FAILED")
else:
- self.stream.write("OK")
- failed, errored, skipped = map(len, (result.failures, result.errors,
- result.skipped))
-
- det_results = []
- for name, value in (("failures", result.failures),
- ("errors",result.errors),
- ("skipped", result.skipped)):
- if value:
- det_results.append("%s=%i" % (name, len(value)))
- if det_results:
- self.stream.write(" (")
- self.stream.write(', '.join(det_results))
- self.stream.write(")")
- self.stream.writeln("")
+ if self.colorize:
+ self.stream.write(textutils.colorize_ansi("OK", color='green'))
+ else:
+ self.stream.write("OK")
+ failed, errored, skipped = map(len, (result.failures, result.errors,
+ result.skipped))
+
+ det_results = []
+ for name, value in (("failures", result.failures),
+ ("errors",result.errors),
+ ("skipped", result.skipped)):
+ if value:
+ det_results.append("%s=%i" % (name, len(value)))
+ if det_results:
+ self.stream.write(" (")
+ self.stream.write(', '.join(det_results))
+ self.stream.write(")")
+ self.stream.writeln("")
return result
@@ -874,6 +877,7 @@ Examples:
test_pattern=self.test_pattern,
skipped_patterns=self.skipped_patterns,
colorize=self.colorize,
+ batchmode=self.batchmode,
options=self.options)
def removeSucceededTests(obj, succTests):