diff options
-rw-r--r-- | Lib/unittest/runner.py | 4 | ||||
-rw-r--r-- | Lib/unittest/test/test_runner.py | 17 | ||||
-rw-r--r-- | Misc/NEWS | 4 |
3 files changed, 24 insertions, 1 deletions
diff --git a/Lib/unittest/runner.py b/Lib/unittest/runner.py index c5e4258..10c4778 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 8f98a02..8e95410 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) @@ -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 |