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() >>> sys.stderr.write("world") >>> out,err = capture.reset() >>> err 'world'