summaryrefslogtreecommitdiffstats
path: root/Lib/unittest
diff options
context:
space:
mode:
authorMichael Foord <fuzzyman@voidspace.org.uk>2010-12-30 19:36:29 (GMT)
committerMichael Foord <fuzzyman@voidspace.org.uk>2010-12-30 19:36:29 (GMT)
commit6f17e2df29a865a29447531e89fb22be710e382d (patch)
tree62c939a3e7eee02f8f6372dac306c9af93f4945a /Lib/unittest
parent30baf2b0eda97fa8a36fddc81824b5772d764018 (diff)
downloadcpython-6f17e2df29a865a29447531e89fb22be710e382d.zip
cpython-6f17e2df29a865a29447531e89fb22be710e382d.tar.gz
cpython-6f17e2df29a865a29447531e89fb22be710e382d.tar.bz2
Issue 10786: unittest.TextTestRunner default stream no longer bound at import time
Diffstat (limited to 'Lib/unittest')
-rw-r--r--Lib/unittest/runner.py4
-rw-r--r--Lib/unittest/test/test_runner.py17
2 files changed, 20 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)