summaryrefslogtreecommitdiff
path: root/Lib/unittest
diff options
context:
space:
mode:
authorMichael Foord <fuzzyman@voidspace.org.uk>2010-04-07 23:04:22 +0000
committerMichael Foord <fuzzyman@voidspace.org.uk>2010-04-07 23:04:22 +0000
commitd1fbcef27ac40a8ebdfce0f79738b011f1d76ea0 (patch)
tree9de6dc3b32efab0a3ae1fb5379f7897092ff44a8 /Lib/unittest
parent20021870d8fe29989ce0a868d30357a6b039c35b (diff)
downloadcpython-d1fbcef27ac40a8ebdfce0f79738b011f1d76ea0.tar.gz
unittest.result.TestResult does not create its buffers until they're used. It uses StringIO not cStringIO. Issue 8333.
Diffstat (limited to 'Lib/unittest')
-rw-r--r--Lib/unittest/result.py9
-rw-r--r--Lib/unittest/test/test_result.py8
2 files changed, 11 insertions, 6 deletions
diff --git a/Lib/unittest/result.py b/Lib/unittest/result.py
index b9045f4b07..4b7cde658a 100644
--- a/Lib/unittest/result.py
+++ b/Lib/unittest/result.py
@@ -4,7 +4,7 @@ import os
import sys
import traceback
-from cStringIO import StringIO
+from StringIO import StringIO
from . import util
from functools import wraps
@@ -46,8 +46,8 @@ class TestResult(object):
self.unexpectedSuccesses = []
self.shouldStop = False
self.buffer = False
- self._stdout_buffer = StringIO()
- self._stderr_buffer = StringIO()
+ self._stdout_buffer = None
+ self._stderr_buffer = None
self._original_stdout = sys.stdout
self._original_stderr = sys.stderr
self._mirrorOutput = False
@@ -60,6 +60,9 @@ class TestResult(object):
self.testsRun += 1
self._mirrorOutput = False
if self.buffer:
+ if self._stderr_buffer is None:
+ self._stderr_buffer = StringIO()
+ self._stdout_buffer = StringIO()
sys.stdout = self._stdout_buffer
sys.stderr = self._stderr_buffer
diff --git a/Lib/unittest/test/test_result.py b/Lib/unittest/test/test_result.py
index c02b8efab2..57ac5494b6 100644
--- a/Lib/unittest/test/test_result.py
+++ b/Lib/unittest/test/test_result.py
@@ -1,6 +1,6 @@
import sys
import textwrap
-from cStringIO import StringIO, OutputType
+from StringIO import StringIO
from test import test_support
import unittest
@@ -24,6 +24,8 @@ class Test_TestResult(unittest.TestCase):
self.assertEqual(len(result.failures), 0)
self.assertEqual(result.testsRun, 0)
self.assertEqual(result.shouldStop, False)
+ self.assertIsNone(result._stdout_buffer)
+ self.assertIsNone(result._stderr_buffer)
# "This method can be called to signal that the set of tests being
@@ -400,8 +402,8 @@ class TestOutputBuffering(unittest.TestCase):
self.assertIsNot(real_out, sys.stdout)
self.assertIsNot(real_err, sys.stderr)
- self.assertIsInstance(sys.stdout, OutputType)
- self.assertIsInstance(sys.stderr, OutputType)
+ self.assertIsInstance(sys.stdout, StringIO)
+ self.assertIsInstance(sys.stderr, StringIO)
self.assertIsNot(sys.stdout, sys.stderr)
out_stream = sys.stdout