[pyar] [django] UI dev // testing

Andres Riancho andres.riancho en gmail.com
Mar Oct 21 12:36:12 ART 2014


2014-10-21 12:25 GMT-03:00 Juan Manuel Schillaci <jmschillaci en gmail.com>:
>
>
> 2014-10-21 11:47 GMT-03:00 Andres Riancho <andres.riancho en gmail.com>:
>>
>> 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
>
>
> Lo probé por ejemplo mockeando funciones dentro del escenario, y anda bien.
> No se si es eso a lo que te referís.

Creo que si, tenes algun ejemplo para mostrar? Quizas en un gist?

>>
>> ?
>>  * Creo que voy a agregarle algunas funcionalidades como:
>>     - No cargar ningun fixture on start, usar la DB existente
>
>
> Habría que cambiar el comando, ya que usa el testserver de django, me parece
> muy interesante el feature, si querés haceme un pull request y lo agregó al
> paquete de pypi.
>
>
>>
>>     - El enable/disable mencionado arriba
>>

Ok, lo miro!

> PD: En el proyecto para el que originalmente desarrolle esta herramienta,
> estoy usando este DockerFile [0], que creo que es de tu autoría :D.
>
> [0]:
> https://github.com/andresriancho/django-uwsgi-nginx-ssh/blob/master/Dockerfile

Hah! Que chico es el mundo.

>
> Saludos!
> Juan Manuel
>
>
>
>>
>> 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
>> _______________________________________________
>> 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
>
>
>
> _______________________________________________
> 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