[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