[Python-es] pregunta de nova sobre unittest

Yamila Moreno Suárez yamila.ms en gmail.com
Jue Mayo 19 16:13:50 EDT 2016


Buenas! En lugar de usar decoradores, prueba a usar el context manager:

def test_my_method():
    with patch('module.to.patch') as mock_1:
        mock_1.return_value = xxx
        result = my_method()
        assert mock_1.calle_count == 1
        assert result == lo-que-sea

Suerte!

Y si ves que es un poco lío, no desesperes, es un lío de cuidado. Ánimo :-)
El 13 may. 2016 2:34, "Jose Caballero" <jcaballero.hep en gmail.com> escribió:

> Hola de nuevo,
>
> he encontrado una manera de hacerlo (a parte de crear myfakeclass).
> Mas o menos funciona, aunque lo veo algo "error-prone":
>
>
>     class Test(unittest.TestCase):
>
>         @patch('mypackage.mymodule.myclass.g')
>         @patch('mypackage.mymodule.myclass.h')
>         def test_f(self, mock_requests1, mock_requests2):
>             mock_requests1.return_value = None
>             mock_requests2.return_value = None
>             obj = myclass()
>             obj.f()
>
>
> mock_requests1 es el argumento asociado a
> @patch('mypackage.mymodule.myclass.g')
> mock_requests2 es el argumento asociado a
> @patch('mypackage.mymodule.myclass.h')
>
> Lo que no me gusta es que si quito uno de los decoradores, hay que
> cambiar la lista de argumentos de test_f( )
> Pero por lo demas, parece que funciona.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160519/ff6bd040/attachment.html>


Más información sobre la lista de distribución Python-es