[pyar] problema con unittest + nose

Daniel Moisset dmoisset en machinalis.com
Mie Mayo 21 15:41:13 ART 2014


Mi forma preferida de hacer eso es:

with mock.patch('common.g') as mock_g:
    common.f()
    mock_g.assertCalledWith(42)

el with te aplica el parche localmente y te lo saca al final del test, no
necesitar estar metiendo reloads.




2014-05-21 15:33 GMT-03:00 Matias Graña <matias.alejo en gmail.com>:

>
>
> 2014-05-21 10:08 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:
>
> El problema que tenés acá es un combinación de 2 cosas:
>>  * al hacer reload, el modulo se ejecuta nuevamente, y se define una
>> nueva clase de exceepcion, si bien el nombre y la definicion de la clase
>> son iguales, no es la misma identidad (son gemelas en vez de ser la misma).
>>  * La definición de CommonTests se evalúa una sola vez. En particular, el
>> argumento del decorador @raises se evalua solo en el momento en que se
>> carga tu modulo tests.py por primera vez
>>
>
> Excelente explicación! :)
> Ahora ya entiendo qué pasa. Y eso me deja dos dudas nuevas
> (lamentablemente, siempre cada respuesta trae dos preguntas)
> *) no hay forma de hacer un reload que pise las clases viejas con las
> nuevas?
> *) lo que yo quiero es tener dos tests:
>   test_a: testea que common.f llama a common.g
>   test_b: testea que common.g devuelve algo particular.
>   El test_a lo hago mockeando, common.g = mock.Mock(), llamando a
> common.f, y luego testeando common.g.assert_called_with(algo)
>   Para hacer el test_b necesito tener common.g de verdad, no mockeada.
>   La pregunta, entonces, es: cómo hago esto sin un reload de common entre
> un test y otro? Tengo que guardar al comienzo common.g y luego del test
> ponerla de nuevo en su lugar? Hay una variante mejor?
>
> Al margen de estas nuevas preguntas, gracias por la explicación!!
>
> Matías
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140521/bf946323/attachment.html>


More information about the pyar mailing list