mirror of
https://github.com/python/cpython.git
synced 2025-07-31 07:04:42 +00:00
Switch regrtest to use StringIO instead of cStringIO for test_multiprocessing on Windows. Issue 8333.
This commit is contained in:
parent
f6ff26c486
commit
91a2c89288
2 changed files with 11 additions and 7 deletions
|
@ -11,6 +11,9 @@ import argparse
|
|||
|
||||
from StringIO import StringIO
|
||||
|
||||
class StdIOBuffer(StringIO):
|
||||
pass
|
||||
|
||||
from test import test_support
|
||||
|
||||
class TestCase(unittest.TestCase):
|
||||
|
@ -25,6 +28,7 @@ class TestCase(unittest.TestCase):
|
|||
super(TestCase, self).assertEqual(obj1, obj2)
|
||||
|
||||
|
||||
|
||||
class TempDirMixin(object):
|
||||
|
||||
def setUp(self):
|
||||
|
@ -83,15 +87,15 @@ def stderr_to_parser_error(parse_args, *args, **kwargs):
|
|||
# if this is being called recursively and stderr or stdout is already being
|
||||
# redirected, simply call the function and let the enclosing function
|
||||
# catch the exception
|
||||
if isinstance(sys.stderr, StringIO) or isinstance(sys.stdout, StringIO):
|
||||
if isinstance(sys.stderr, StdIOBuffer) or isinstance(sys.stdout, StdIOBuffer):
|
||||
return parse_args(*args, **kwargs)
|
||||
|
||||
# if this is not being called recursively, redirect stderr and
|
||||
# use it as the ArgumentParserError message
|
||||
old_stdout = sys.stdout
|
||||
old_stderr = sys.stderr
|
||||
sys.stdout = StringIO()
|
||||
sys.stderr = StringIO()
|
||||
sys.stdout = StdIOBuffer()
|
||||
sys.stderr = StdIOBuffer()
|
||||
try:
|
||||
try:
|
||||
result = parse_args(*args, **kwargs)
|
||||
|
@ -2644,7 +2648,7 @@ class TestHelpFormattingMetaclass(type):
|
|||
parser = self._get_parser(tester)
|
||||
print_ = getattr(parser, 'print_%s' % self.func_suffix)
|
||||
old_stream = getattr(sys, self.std_name)
|
||||
setattr(sys, self.std_name, StringIO())
|
||||
setattr(sys, self.std_name, StdIOBuffer())
|
||||
try:
|
||||
print_()
|
||||
parser_text = getattr(sys, self.std_name).getvalue()
|
||||
|
@ -2655,7 +2659,7 @@ class TestHelpFormattingMetaclass(type):
|
|||
def test_print_file(self, tester):
|
||||
parser = self._get_parser(tester)
|
||||
print_ = getattr(parser, 'print_%s' % self.func_suffix)
|
||||
sfile = StringIO()
|
||||
sfile = StdIOBuffer()
|
||||
print_(sfile)
|
||||
parser_text = sfile.getvalue()
|
||||
self._test(tester, parser_text)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue