[pyar] [django] UI dev // testing

Sebastián Seba ssebastianj en gmail.com
Lun Oct 20 20:03:26 ART 2014


El lunes, 20 de octubre de 2014, Andres Riancho <andres.riancho en gmail.com>
escribió:

> 2014-10-20 18:27 GMT-03:00 Sebastián Seba <ssebastianj en gmail.com
> <javascript:;>>:
> > El lunes, 20 de octubre de 2014, Andres Riancho <
> andres.riancho en gmail.com <javascript:;>>
> > escribió:
> >>
> >> Lista,
> >>
> >>     Para una aplicacion que vengo desarrollando migre a AngularJS +
> >> REST API implementada en Django (tastypie). Los desarrolladores de
> >> AngularJS "no tienen ni idea" de Python+Django y prontamente les
> >> tocará desarrollar la UI para algo que se ve asi:
> >>
> >>     * POST /foo/ , aqui obtengo el ID del nuevo foo creado, 1
> >>     * POST /bar/?foo=1
> >>         * Aca el server normalmente iría a una API externa a hacer una
> >> consulta sobre foo-1
> >>         * En caso de error de la API externa se debería mostrar un
> >> error en AngularJS y continuar por un branch de error
> >>         * En caso de success se deberia seguir al proximo paso
> >>     * POST /spam/
> >>
> >>     Mi pregunta es... existe en Django una manera recomendada para
> >> "mockear" esto? Estoy pensando quizás en un flag para runserver que
> >> patchee el call a la API externa... quizás:
> >>
> >>     * python manage.py runserver --api-externa-error
> >>     * python manage.py runserver --api-externa-success
> >>
> >>     Entonces ellos pueden desarrollar todo lo que necesitan para el
> >> caso de errores primero (corriendo en sus maquinas el runserver con
> >> --api-externa-error) y despues desarrollar para el caso de success
> >> (--api-externa-success)
> >>
> >>     Se que lo que acabo de escribir es realizable, pero no se si es
> >> recomendable.
> >>
> >>     Cual es la mejor forma de solucionar esto teniendo en cuenta los
> >> infinitamente bajos conocimientos de python de mis desarrolladores
> >> angular?
> >>
> >> Saludos,
> >> --
> >> Andrés Riancho
> >> Project Leader at w3af - http://w3af.org/
> >> Web Application Attack and Audit Framework
> >> Twitter: @w3af
> >> GPG: 0x93C344F3
> >> _______________________________________________
> >> pyar mailing list pyar en python.org.ar <javascript:;>
> >> 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
> >
> >
> > No lo llegué a usar pero en la documentación de Django REST Framework me
> > encontré con Apiary [0] y que según parece te permite hacer mock [1] de
> una
> > API REST.
> >
> > [0] http://apiary.io
> > [1] http://apiary.io/how-it-works
>
> Podría intentar hacer algo con apiary, pero no parece ser lo que estoy
> buscando.
>
> Estuve pensando un rato más y creo que voy a ir por un camino como:
>  * Definir un /config/ resource que solo este definido para DEBUG=True
>  * Ese config toma POSTs como {"mock-feature-1": true} ,
> {"mock-feature-1": false}, {"mock-feature-3": "{"foo": "bar"}"}
>  * Despues en el handler tengo funciones que en base a
> "mock-feature-3" hacen monkey-patching de alguna funcion para que
> devuelva {"foo": "bar"}
>  * El UI developer debería poder abrir una consola mientras que esta
> desarrollando y tirar comandos como estos para cambiar las
> "respuestas" de la API externa:
>         - curl http://127.0.0.1:8000/1.0/config/ -XPOST -H "Accept:
> application/json" -H "Content-Type: application/json" -d
> '{"mock-feature-1": false}'
>         - curl http://127.0.0.1:8000/1.0/config/ -XPOST -H "Accept:
> application/json" -H "Content-Type: application/json" -d
> '{"mock-feature-1": true}'
>
> Tiene el problema de que si el user cambia un archivo .py, runserver
> hace un reload y el monkey-patch (muy posiblemente) se pierde.
>
> Saludos,
>
> > Saludos.
> >
> >
> > --
> > Sebastián J. Seba
> >
> >
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar <javascript:;>
> > 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
>
>
>
> --
> Andrés Riancho
> Project Leader at w3af - http://w3af.org/
> Web Application Attack and Audit Framework
> Twitter: @w3af
> GPG: 0x93C344F3
> _______________________________________________
> pyar mailing list pyar en python.org.ar <javascript:;>
> 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
>

Estaba leyendo el libro Online de Harry Percival sobre testing con Django y
recordé que en el índice hay varios temas sobre testing con Django,
Javascript y mocking.

No llegué todavía a esos capítulos pero haciendo una búsqueda por la
palabra "mock" aparecen varias cosas interesantes.

Enlace: http://chimera.labs.oreilly.com/books/1234000000754/index.html


-- 
*Sebastián J. Seba*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20141020/d543e68c/attachment-0001.html>


More information about the pyar mailing list