diff options
author | Adrien Di Mascio <Adrien.DiMascio@logilab.fr> | 2009-07-29 11:46:34 +0200 |
---|---|---|
committer | Adrien Di Mascio <Adrien.DiMascio@logilab.fr> | 2009-07-29 11:46:34 +0200 |
commit | daca0d1543e91bec9cdcef0f68e28f70271c1779 (patch) | |
tree | c4bf350a35c788c6e051b7544302838d54f3f04f | |
parent | 71f80b37c405e672f25b25beec42c09f7d2bd13e (diff) | |
download | logilab-common-daca0d1543e91bec9cdcef0f68e28f70271c1779.tar.gz |
[pytest] fix batchmode exeution, don't capture streams
-rw-r--r-- | pytest.py | 17 | ||||
-rw-r--r-- | testlib.py | 62 |
2 files changed, 37 insertions, 42 deletions
@@ -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: @@ -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): |