(merge 3.2) Issue #12400: regrtest, force verbose mode to True with option -W

If verbose is False, the output is empty. Fix also a typo in a variable name.
This commit is contained in:
Victor Stinner 2011-06-29 15:38:18 +02:00
commit ba08905062
1 changed files with 10 additions and 7 deletions

View File

@ -838,29 +838,32 @@ def runtest(test, verbose, quiet,
if use_timeout:
faulthandler.dump_tracebacks_later(timeout, exit=True)
try:
support.verbose = verbose # Tell tests to be moderately quiet
if output_on_failure:
if runtest.stringio is None:
support.verbose = True
# Reuse the same instance to all calls to runtest(). Some
# tests keep a reference to sys.stdout or sys.stderr
# (eg. test_argparse).
if runtest.stringio is None:
runtest.stringio = io.StringIO()
stream = runtest.stringio
orig_stdout = sys.stdout
orig_stderr = sys.stderr
try:
sys.stdout = runtest.stringio
sys.stderr = runtest.stringio
sys.stdout = stream
sys.stderr = stream
result = runtest_inner(test, verbose, quiet, huntrleaks,
debug, display_failure=False)
if result[0] == FAILED:
output = stringio.getvalue()
output = stream.getvalue()
orig_stderr.write(output)
orig_stderr.flush()
finally:
sys.stdout = orig_stdout
sys.stderr = orig_stderr
else:
support.verbose = verbose # Tell tests to be moderately quiet
result = runtest_inner(test, verbose, quiet, huntrleaks, debug,
display_failure=not verbose)
return result