[pyar] [django] UI dev // testing
Andres Riancho
andres.riancho en gmail.com
Lun Oct 20 18:49:25 ART 2014
2014-10-20 18:27 GMT-03:00 Sebastián Seba <ssebastianj en gmail.com>:
> El lunes, 20 de octubre de 2014, Andres Riancho <andres.riancho en gmail.com>
> 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
>> 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
> 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
More information about the pyar
mailing list