[pyar] [django] factory_boy y queryset

Martín Gaitán gaitan en gmail.com
Lun Mayo 5 11:27:14 ART 2014


2014-05-05 10:17 GMT-03:00 Daniel <dmlistapython en gmail.com>:

>
> Factory boy sirve para generar datos sin utilizar fixtures, sino
>> factories.
>>
>> ¿Por qué querrías que Factory Boy te generase una queryset?
>>
>
> para testear los filters y Q que quiero hacer
>


Daniel, lo que te explica Juan Manuel (entiendo) es que factory_boy crea
instancias reales de tu modelo, no objetos parecidos (mocks). La ventaja es
que es mucho más fácil porque podés hacer que los objetos relacionados (por
ejemplo los ForeignKey) se creen solos, entre muchas otras cosas piolas.

Pero siendo instancias de modelos reales, si usas la estrategia BUILD que
es la default [1], las instancias creadas artificialmente quedan en tu base
de datos y entonces podés hacer las consultas que quieras.

Entonces

1. En tu test, tu modelo no tiene instancias
2. Creas algunas instancias particulares con factory_boy
3. Realizas consultas a tu modelo comprobando que dependiendo de uno u otro
atributo de las instancias que creates pasan o no los filtros de tu
consulta.

Te puedo mostrar estos ejemplos:
https://github.com/mgaitan/preciosa/blob/develop/preciosa/precios/tests/test_productos.py

Por otro lado, si de verdad querés un "mock" de queryset de django, podés
mirar esto [2] del tipito que hizo sentry y disqus, entre otras cosas.

[1]
https://factoryboy.readthedocs.org/en/latest/introduction.html#strategies
[2] https://github.com/dcramer/mock-django

saludos

-- 
mgaitan.github.io
textosyprextextos.com.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140505/80819026/attachment-0001.html>


More information about the pyar mailing list