Here are the examples of the python api sys.stdall taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
2 Examples
2
Example 1
def trap(func):
"""
Replace sys.std(out|err) with a wrapper during execution, restored after.
In addition, a new combined-streams output (another wrapper) will appear at
``sys.stdall``. This stream will resemble what a user sees at a terminal,
i.e. both out/err streams intermingled.
"""
@wraps(func)
def wrapper(*args, **kwargs):
# Use another CarbonCopy even though we're not cc'ing; for our "write
# bytes, return strings on py3" behavior. Meh.
sys.stdall = CarbonCopy()
my_stdout, sys.stdout = sys.stdout, CarbonCopy(cc=sys.stdall)
my_stderr, sys.stderr = sys.stderr, CarbonCopy(cc=sys.stdall)
try:
return func(*args, **kwargs)
finally:
sys.stdout = my_stdout
sys.stderr = my_stderr
del sys.stdall
return wrapper
2
Example 2
Project: fabric Source File: mock_streams.py
def mock_streams(which):
"""
Replaces a stream with a ``StringIO`` during the test, then restores after.
Must specify which stream (stdout, stderr, etc) via string args, e.g.::
@mock_streams('stdout')
def func():
pass
@mock_streams('stderr')
def func():
pass
@mock_streams('both')
def func()
pass
If ``'both'`` is specified, not only will both streams be replaced with
StringIOs, but a new combined-streams output (another StringIO) will appear
at ``sys.stdall``. This StringIO will resemble what a user sees at a
terminal, i.e. both streams intermingled.
"""
both = (which == 'both')
stdout = (which == 'stdout') or both
stderr = (which == 'stderr') or both
def mocked_streams_decorator(func):
@wraps(func)
def inner_wrapper(*args, **kwargs):
if both:
sys.stdall = StringIO()
fake_stdout = CarbonCopy(cc=sys.stdall)
fake_stderr = CarbonCopy(cc=sys.stdall)
else:
fake_stdout, fake_stderr = StringIO(), StringIO()
if stdout:
my_stdout, sys.stdout = sys.stdout, fake_stdout
if stderr:
my_stderr, sys.stderr = sys.stderr, fake_stderr
try:
func(*args, **kwargs)
finally:
if stdout:
sys.stdout = my_stdout
if stderr:
sys.stderr = my_stderr
if both:
del sys.stdall
return inner_wrapper
return mocked_streams_decorator