The 'py' lib provides helper classes for capturing IO during execution of a program.
Basic Example:
>>> import py >>> capture = py.io.StdCapture() >>> print "hello" >>> out,err = capture.reset() >>> out.strip() == "hello" True
For calling functions you may use a shortcut:
>>> import py >>> def f(): print "hello" >>> res, out, err = py.io.StdCapture.call(f) >>> out.strip() == "hello" True
If you also want to capture writes to the stdout/stderr filedescriptors you may invoke:
>>> import py, sys
>>> capture = py.io.StdCaptureFD(out=False, in_=False)
>>> sys.stderr.write("world")
>>> out,err = capture.reset()
>>> err
'world'