<p dir="ltr">Si tienes que mockear varios métodos lo más fácil es poner varios "with" atendiendo a pequeñas cosas:</p>
<p dir="ltr">- cada sentencia sangrada (indentada) respecto a la anterior<br>
- el código que pruebas sangrado respecto a todos los  bloques with<br>
- asegúrate de que cada block tiene un alias distinto</p>
<p dir="ltr">Por cierto en la docu oficial además explican patch.object('my_module.MyClass') para mockear clases con métodos en lugar de funciones.</p>
<p dir="ltr">Suerte!<br>
</p>
<div class="gmail_quote">El 20 may. 2016 17:10, "Jose Caballero" <<a href="mailto:jcaballero.hep@gmail.com">jcaballero.hep@gmail.com</a>> escribió:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">creo recordar que lo intente cuando abri el hilo. No recuerdo muy<br>
bien, pero creo que no supe como hacerlo para 2 o mas metodos. Lo<br>
intentare de nuevo.<br>
<br>
PS: perdon por las [no] tildes<br>
<br>
El día 19 de mayo de 2016, 16:13, Yamila Moreno Suárez<br>
<<a href="mailto:yamila.ms@gmail.com">yamila.ms@gmail.com</a>> escribió:<br>
> Buenas! En lugar de usar decoradores, prueba a usar el context manager:<br>
><br>
> def test_my_method():<br>
>     with patch('module.to.patch') as mock_1:<br>
>         mock_1.return_value = xxx<br>
>         result = my_method()<br>
>         assert mock_1.calle_count == 1<br>
>         assert result == lo-que-sea<br>
><br>
> Suerte!<br>
><br>
> Y si ves que es un poco lío, no desesperes, es un lío de cuidado. Ánimo :-)<br>
><br>
> El 13 may. 2016 2:34, "Jose Caballero" <<a href="mailto:jcaballero.hep@gmail.com">jcaballero.hep@gmail.com</a>> escribió:<br>
>><br>
>> Hola de nuevo,<br>
>><br>
>> he encontrado una manera de hacerlo (a parte de crear myfakeclass).<br>
>> Mas o menos funciona, aunque lo veo algo "error-prone":<br>
>><br>
>><br>
>>     class Test(unittest.TestCase):<br>
>><br>
>>         @patch('mypackage.mymodule.myclass.g')<br>
>>         @patch('mypackage.mymodule.myclass.h')<br>
>>         def test_f(self, mock_requests1, mock_requests2):<br>
>>             mock_requests1.return_value = None<br>
>>             mock_requests2.return_value = None<br>
>>             obj = myclass()<br>
>>             obj.f()<br>
>><br>
>><br>
>> mock_requests1 es el argumento asociado a<br>
>> @patch('mypackage.mymodule.myclass.g')<br>
>> mock_requests2 es el argumento asociado a<br>
>> @patch('mypackage.mymodule.myclass.h')<br>
>><br>
>> Lo que no me gusta es que si quito uno de los decoradores, hay que<br>
>> cambiar la lista de argumentos de test_f( )<br>
>> Pero por lo demas, parece que funciona.<br>
>> _______________________________________________<br>
>> Python-es mailing list<br>
>> <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
>> <a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
>> FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
><br>
><br>
> _______________________________________________<br>
> Python-es mailing list<br>
> <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
> FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
><br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</blockquote></div>