Suprimir salida de impresión en pruebas unitarias [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Silence el stdout de una función en Python sin destruir sys.stdout y restaurar cada llamada de función 8 respuestasEditar Tenga en cuenta que estoy usando Python 2.6 (como está etiquetado)
Di que tengo lo siguiente:
class Foo:
def bar(self):
print 'bar'
return 7
Y digamos que tengo la siguiente prueba de unidad:
import unittest
class ut_Foo(unittest.TestCase):
def test_bar(self):
obj = Foo()
res = obj.bar()
self.assertEqual(res, 7)
Así que si corro:
unittest.main()
Yo obtengo
bar # <-- I don't want this, but I *do* want the rest
.
----------------------------------------------------------------------
Ran 1 test in 0.002s
OK
Exit code: False
Mi pregunta es: ¿hay alguna forma de suprimir la salida del objeto que se está probando y al mismo tiempo obtener la salida del marco de prueba de unidad?
Edita Esta pregunta no es un duplicado de la pregunta marcada que pregunta sobre silenciar stdout de una función particular dentro de un script de python normal.
Mientras que esta pregunta es acerca de cómo ocultar el stdout normal de un script de Python mientras se ejecutan las pruebas unitarias. Todavía quiero que se muestre el stdout de unittest, y no quiero deshabilitar el stdout de mi script probado.