J'écris des tests pour une fonction comme la suivante:
def foo():
print 'hello world!'
Donc, quand je veux tester cette fonction, le code sera comme ceci:
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!'
Mais si j'exécute nosetests avec le paramètre -s, le test plante. Comment puis-je capturer la sortie avec unittest ou un module nasal?
with mock.patch('sys.stdout', new_callable=StringIO.StringIO):
pypi.python.org/pypi/mock