#7960: merge with 3.2.
This commit is contained in:
commit
6b8934053a
|
@ -887,14 +887,8 @@ def transient_internet(resource_name, *, timeout=30.0, errnos=()):
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
def captured_output(stream_name):
|
def captured_output(stream_name):
|
||||||
"""Run the 'with' statement body using a StringIO object in place of a
|
"""Return a context manager used by captured_stdout and captured_stdin
|
||||||
specific attribute on the sys module.
|
that temporarily replaces the sys stream *stream_name* with a StringIO."""
|
||||||
Example use (with 'stream_name=stdout')::
|
|
||||||
|
|
||||||
with captured_stdout() as s:
|
|
||||||
print("hello")
|
|
||||||
assert s.getvalue() == "hello"
|
|
||||||
"""
|
|
||||||
import io
|
import io
|
||||||
orig_stdout = getattr(sys, stream_name)
|
orig_stdout = getattr(sys, stream_name)
|
||||||
setattr(sys, stream_name, io.StringIO())
|
setattr(sys, stream_name, io.StringIO())
|
||||||
|
@ -904,6 +898,12 @@ def captured_output(stream_name):
|
||||||
setattr(sys, stream_name, orig_stdout)
|
setattr(sys, stream_name, orig_stdout)
|
||||||
|
|
||||||
def captured_stdout():
|
def captured_stdout():
|
||||||
|
"""Capture the output of sys.stdout:
|
||||||
|
|
||||||
|
with captured_stdout() as s:
|
||||||
|
print("hello")
|
||||||
|
self.assertEqual(s.getvalue(), "hello")
|
||||||
|
"""
|
||||||
return captured_output("stdout")
|
return captured_output("stdout")
|
||||||
|
|
||||||
def captured_stderr():
|
def captured_stderr():
|
||||||
|
|
Loading…
Reference in New Issue