[pyar] [django] UI dev // testing
Juan Manuel Schillaci
jmschillaci en gmail.com
Mar Oct 21 11:19:24 ART 2014
2014-10-20 20:03 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ó:
>
>> 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
>> >
>>
>> Buenas,
Yo desarrollé una app django para justamente armar escenarios con
"Fixtures" en el server, casualmente lo estoy usando con
django-rest-framework y Angular.
https://pypi.python.org/pypi/django-remote-scenario/0.2.7
https://github.com/skalanux/django-remote-scenario
Por ahi te sirve.
Saludos
Juan Manuel
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20141021/5cb3b7fb/attachment.html>
More information about the pyar
mailing list