[pyar] [django] UI dev // testing

Andres Riancho andres.riancho en gmail.com
Mar Oct 21 11:47:59 ART 2014


Es BUENISIMO! Super similar a lo que estaba pensando, con algunos
features extra que ni me habia imaginado. Muchas gracias por
desarrollar la app y hacerme saber que existe :)

Te dejo algunas preguntas:
 * Lo probaste con monkey-patching de funciones? Quizás para hacer eso
haga falta un /drs/app/scenario_1/enable y /drs/app/scenario_1/disable
?
 * Creo que voy a agregarle algunas funcionalidades como:
    - No cargar ningun fixture on start, usar la DB existente
    - El enable/disable mencionado arriba

Gracias,

2014-10-21 11:19 GMT-03:00 Juan Manuel Schillaci <jmschillaci en gmail.com>:
>
>
> 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
>
>
>
>
>
> _______________________________________________
> 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