[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