[pyar] Como mockear un iterable con mockito?
Gabriel
gepatino en gmail.com
Jue Jun 14 18:16:54 ART 2012
2012/6/14 Juan Gabardini <jgabardini en gmail.com>
>
>
> def test_blabla():
>>> cursor = mock()
>>> when(cursor).fetchone().thenReturn({'id': 1, 'name': 'pepe'})
>>> res = funcion(cursor)
>>> ... asserts, etc
>>>
>>>
>>> when(cursor).excecute().thenReturn([{'id': 1, 'name': 'pepe'}, {'id':
>> 2, 'name': 'jose'}])
>>
>> No lo probé!
>>
> nah, miré mejor, y no debe funcionar
>
>
El tema ahi es que te devuelve la lista de filas al ejecutar el execute,
pero esa operacion no se asigna en ningun lado. El codigo a testear sería:
cursor.execute('...')
for row in cursor:
...
Si devuelvo esa lista al llamar al execute, quedaria perdida en la nada,
pero al ejecutar la linea del for row in cursor, volveria a fallar porque
en ese caso se llama al método __iter__.
Reescribi los tests usando MagicMock de la librería mock (en vez de
mockito) como me recomendó Daniel y funciona bien, asi que vamos con esa
opcion.
--
Gabriel E. Patiño
http://about.me/gepatino
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120614/5a60e3bf/attachment.html>
More information about the pyar
mailing list