Я пишу тесты для функции вроде следующей:
def foo():
print 'hello world!'
Поэтому, когда я хочу протестировать эту функцию, код будет выглядеть следующим образом:
import sys
from foomodule import foo
def test_foo():
foo()
output = sys.stdout.getline().strip() # because stdout is an StringIO instance
assert output == 'hello world!'
Но если я запустил nosetests с параметром -s, тест завершится с ошибкой. Как я могу поймать вывод с помощью unittest или носового модуля?