mirror of https://github.com/python/cpython
Merge #17987: properly document support.captured_xxx.
This commit is contained in:
commit
e173d01231
|
@ -362,17 +362,29 @@ The :mod:`test.support` module defines the following functions:
|
||||||
New optional arguments *filters* and *quiet*.
|
New optional arguments *filters* and *quiet*.
|
||||||
|
|
||||||
|
|
||||||
.. function:: captured_stdout()
|
.. function:: captured_stdin()
|
||||||
|
captured_stdout()
|
||||||
|
captured_stderr()
|
||||||
|
|
||||||
A context manager that runs the :keyword:`with` statement body using a
|
A context managers that temporarily replaces the named stream with
|
||||||
:class:`io.StringIO` object as sys.stdout. That object can be retrieved
|
:class:`io.StringIO` object.
|
||||||
using the ``as`` clause of the :keyword:`with` statement.
|
|
||||||
|
|
||||||
Example use::
|
Example use with output streams::
|
||||||
|
|
||||||
with captured_stdout() as s:
|
with captured_stdout() as stdout, captured_stderr() as stderr:
|
||||||
print("hello")
|
print("hello")
|
||||||
assert s.getvalue() == "hello\n"
|
print("error", file=sys.stderr)
|
||||||
|
assert stdout.getvalue() == "hello\n"
|
||||||
|
assert stderr.getvalue() == "error\n"
|
||||||
|
|
||||||
|
Example use with input stream::
|
||||||
|
|
||||||
|
with captured_stdin() as stdin:
|
||||||
|
stdin.write('hello\n')
|
||||||
|
stdin.seek(0)
|
||||||
|
# call test code that consumes from sys.stdin
|
||||||
|
captured = input()
|
||||||
|
self.assertEqual(captured, "hello")
|
||||||
|
|
||||||
|
|
||||||
.. function:: temp_cwd(name='tempcwd', quiet=False, path=None)
|
.. function:: temp_cwd(name='tempcwd', quiet=False, path=None)
|
||||||
|
|
|
@ -1186,16 +1186,31 @@ def captured_output(stream_name):
|
||||||
def captured_stdout():
|
def captured_stdout():
|
||||||
"""Capture the output of sys.stdout:
|
"""Capture the output of sys.stdout:
|
||||||
|
|
||||||
with captured_stdout() as s:
|
with captured_stdout() as stdout:
|
||||||
print("hello")
|
print("hello")
|
||||||
self.assertEqual(s.getvalue(), "hello")
|
self.assertEqual(stdout.getvalue(), "hello\n")
|
||||||
"""
|
"""
|
||||||
return captured_output("stdout")
|
return captured_output("stdout")
|
||||||
|
|
||||||
def captured_stderr():
|
def captured_stderr():
|
||||||
|
"""Capture the output of sys.stderr:
|
||||||
|
|
||||||
|
with captured_stderr() as stderr:
|
||||||
|
print("hello", file=sys.stderr)
|
||||||
|
self.assertEqual(stderr.getvalue(), "hello\n")
|
||||||
|
"""
|
||||||
return captured_output("stderr")
|
return captured_output("stderr")
|
||||||
|
|
||||||
def captured_stdin():
|
def captured_stdin():
|
||||||
|
"""Capture the input to sys.stdin:
|
||||||
|
|
||||||
|
with captured_stdin() as stdin:
|
||||||
|
stdin.write('hello\n')
|
||||||
|
stdin.seek(0)
|
||||||
|
# call test code that consumes from sys.stdin
|
||||||
|
captured = input()
|
||||||
|
self.assertEqual(captured, "hello")
|
||||||
|
"""
|
||||||
return captured_output("stdin")
|
return captured_output("stdin")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -130,19 +130,22 @@ class TestSupport(unittest.TestCase):
|
||||||
self.assertNotIn("bar", sys.path)
|
self.assertNotIn("bar", sys.path)
|
||||||
|
|
||||||
def test_captured_stdout(self):
|
def test_captured_stdout(self):
|
||||||
with support.captured_stdout() as s:
|
with support.captured_stdout() as stdout:
|
||||||
print("hello")
|
print("hello")
|
||||||
self.assertEqual(s.getvalue(), "hello\n")
|
self.assertEqual(stdout.getvalue(), "hello\n")
|
||||||
|
|
||||||
def test_captured_stderr(self):
|
def test_captured_stderr(self):
|
||||||
with support.captured_stderr() as s:
|
with support.captured_stderr() as stderr:
|
||||||
print("hello", file=sys.stderr)
|
print("hello", file=sys.stderr)
|
||||||
self.assertEqual(s.getvalue(), "hello\n")
|
self.assertEqual(stderr.getvalue(), "hello\n")
|
||||||
|
|
||||||
def test_captured_stdin(self):
|
def test_captured_stdin(self):
|
||||||
with support.captured_stdin() as s:
|
with support.captured_stdin() as stdin:
|
||||||
print("hello", file=sys.stdin)
|
stdin.write('hello\n')
|
||||||
self.assertEqual(s.getvalue(), "hello\n")
|
stdin.seek(0)
|
||||||
|
# call test code that consumes from sys.stdin
|
||||||
|
captured = input()
|
||||||
|
self.assertEqual(captured, "hello")
|
||||||
|
|
||||||
def test_gc_collect(self):
|
def test_gc_collect(self):
|
||||||
support.gc_collect()
|
support.gc_collect()
|
||||||
|
|
Loading…
Reference in New Issue