From: Michael Foord Date: Thu, 30 Dec 2010 19:36:29 +0000 (+0000) Subject: Issue 10786: unittest.TextTestRunner default stream no longer bound at import time X-Git-Tag: v3.2rc1~276 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6f17e2df29a865a29447531e89fb22be710e382d;p=python Issue 10786: unittest.TextTestRunner default stream no longer bound at import time --- diff --git a/Lib/unittest/runner.py b/Lib/unittest/runner.py index c5e42587bd..10c4778434 100644 --- a/Lib/unittest/runner.py +++ b/Lib/unittest/runner.py @@ -125,8 +125,10 @@ class TextTestRunner(object): """ resultclass = TextTestResult - def __init__(self, stream=sys.stderr, descriptions=True, verbosity=1, + def __init__(self, stream=None, descriptions=True, verbosity=1, failfast=False, buffer=False, resultclass=None, warnings=None): + if stream is None: + stream = sys.stderr self.stream = _WritelnDecorator(stream) self.descriptions = descriptions self.verbosity = verbosity diff --git a/Lib/unittest/test/test_runner.py b/Lib/unittest/test/test_runner.py index 8f98a0242f..8e95410e9e 100644 --- a/Lib/unittest/test/test_runner.py +++ b/Lib/unittest/test/test_runner.py @@ -299,3 +299,20 @@ class Test_TextTestRunner(unittest.TestCase): self.assertEqual(out.count(msg), 3) for msg in [ae_msg, at_msg]: self.assertEqual(out.count(msg), 1) + + def testStdErrLookedUpAtInstantiationTime(self): + # see issue 10786 + old_stderr = sys.stderr + f = io.StringIO() + sys.stderr = f + try: + runner = unittest.TextTestRunner() + self.assertTrue(runner.stream.stream is f) + finally: + sys.stderr = old_stderr + + def testSpecifiedStreamUsed(self): + # see issue 10786 + f = io.StringIO() + runner = unittest.TextTestRunner(f) + self.assertTrue(runner.stream.stream is f) diff --git a/Misc/NEWS b/Misc/NEWS index 111452a104..9477594b26 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -20,6 +20,10 @@ Core and Builtins Library ------- +- Issue 10786: unittest.TextTestRunner default stream no longer bound at + import time. `sys.stderr` now looked up at instantiation time. Fix contributed + by Mark Roddy. + - Issue 10753 - Characters ';','=' and ',' in the PATH_INFO environment variable won't be quoted when the URI is constructed by the wsgiref.util 's request_uri method. According to RFC 3986, these characters can be a part of