Make the XMLRCP CGIHandlerTestCase pass like it did before the change of
the test to use StringIO instead of a temp file. There may or may not be an underlying problem here, so this patch makes the test function as originally designed until a determination can be made as to whether or not there is an underlying bug here. See issue 7165 for discussion.
This commit is contained in:
parent
cc16d16add
commit
0548ce088d
|
@ -10,6 +10,8 @@ import http.client
|
||||||
import socket
|
import socket
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
import io
|
||||||
|
import contextlib
|
||||||
from test import support
|
from test import support
|
||||||
|
|
||||||
alist = [{'astring': 'foo@bar.baz.spam',
|
alist = [{'astring': 'foo@bar.baz.spam',
|
||||||
|
@ -713,6 +715,21 @@ class FailingServerTestCase(unittest.TestCase):
|
||||||
else:
|
else:
|
||||||
self.fail('ProtocolError not raised')
|
self.fail('ProtocolError not raised')
|
||||||
|
|
||||||
|
|
||||||
|
@contextlib.contextmanager
|
||||||
|
def captured_stdout(encoding='utf-8'):
|
||||||
|
"""A variation on support.captured_stdout() which gives a text stream
|
||||||
|
having a `buffer` attribute.
|
||||||
|
"""
|
||||||
|
import io
|
||||||
|
orig_stdout = sys.stdout
|
||||||
|
sys.stdout = io.TextIOWrapper(io.BytesIO(), encoding=encoding)
|
||||||
|
try:
|
||||||
|
yield sys.stdout
|
||||||
|
finally:
|
||||||
|
sys.stdout = orig_stdout
|
||||||
|
|
||||||
|
|
||||||
class CGIHandlerTestCase(unittest.TestCase):
|
class CGIHandlerTestCase(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.cgi = xmlrpc.server.CGIXMLRPCRequestHandler()
|
self.cgi = xmlrpc.server.CGIXMLRPCRequestHandler()
|
||||||
|
@ -725,7 +742,7 @@ class CGIHandlerTestCase(unittest.TestCase):
|
||||||
env['REQUEST_METHOD'] = 'GET'
|
env['REQUEST_METHOD'] = 'GET'
|
||||||
# if the method is GET and no request_text is given, it runs handle_get
|
# if the method is GET and no request_text is given, it runs handle_get
|
||||||
# get sysout output
|
# get sysout output
|
||||||
with support.captured_stdout() as data_out:
|
with captured_stdout(encoding=self.cgi.encoding) as data_out:
|
||||||
self.cgi.handle_request()
|
self.cgi.handle_request()
|
||||||
|
|
||||||
# parse Status header
|
# parse Status header
|
||||||
|
@ -754,7 +771,7 @@ class CGIHandlerTestCase(unittest.TestCase):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
with support.EnvironmentVarGuard() as env, \
|
with support.EnvironmentVarGuard() as env, \
|
||||||
support.captured_stdout() as data_out, \
|
captured_stdout(encoding=self.cgi.encoding) as data_out, \
|
||||||
support.captured_stdin() as data_in:
|
support.captured_stdin() as data_in:
|
||||||
data_in.write(data)
|
data_in.write(data)
|
||||||
data_in.seek(0)
|
data_in.seek(0)
|
||||||
|
|
Loading…
Reference in New Issue