<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2014-10-21 11:47 GMT-03:00 Andres Riancho <span dir="ltr"><<a href="mailto:andres.riancho@gmail.com" target="_blank">andres.riancho@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Es BUENISIMO! Super similar a lo que estaba pensando, con algunos<br>
features extra que ni me habia imaginado. Muchas gracias por<br>
desarrollar la app y hacerme saber que existe :)<br>
<br>
Te dejo algunas preguntas:<br>
 * Lo probaste con monkey-patching de funciones? Quizás para hacer eso<br>
haga falta un /drs/app/scenario_1/enable y /drs/app/scenario_1/disable<br></blockquote><div><br></div><div>Lo probé por ejemplo mockeando funciones dentro del escenario, y anda bien. No se si es eso a lo que te referís.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
?<br>
 * Creo que voy a agregarle algunas funcionalidades como:<br>
    - No cargar ningun fixture on start, usar la DB existente<br></blockquote><div><br></div><div>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.<br></div><div><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
    - El enable/disable mencionado arriba<br>
<br></blockquote><div><br></div><div>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.<br><br>[0]: <a href="https://github.com/andresriancho/django-uwsgi-nginx-ssh/blob/master/Dockerfile">https://github.com/andresriancho/django-uwsgi-nginx-ssh/blob/master/Dockerfile</a> <br><br><br></div><div>Saludos!<br>Juan Manuel<br></div><div><br></div><div><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Gracias,<br>
<br>
2014-10-21 11:19 GMT-03:00 Juan Manuel Schillaci <<a href="mailto:jmschillaci@gmail.com">jmschillaci@gmail.com</a>>:<br>
<div class=""><div class="h5">><br>
><br>
> 2014-10-20 20:03 GMT-03:00 Sebastián Seba <<a href="mailto:ssebastianj@gmail.com">ssebastianj@gmail.com</a>>:<br>
><br>
>> El lunes, 20 de octubre de 2014, Andres Riancho <<a href="mailto:andres.riancho@gmail.com">andres.riancho@gmail.com</a>><br>
>> escribió:<br>
>>><br>
>>> 2014-10-20 18:27 GMT-03:00 Sebastián Seba <<a href="mailto:ssebastianj@gmail.com">ssebastianj@gmail.com</a>>:<br>
>>> > El lunes, 20 de octubre de 2014, Andres Riancho<br>
>>> > <<a href="mailto:andres.riancho@gmail.com">andres.riancho@gmail.com</a>><br>
>>> > escribió:<br>
>>> >><br>
>>> >> Lista,<br>
>>> >><br>
>>> >>     Para una aplicacion que vengo desarrollando migre a AngularJS +<br>
>>> >> REST API implementada en Django (tastypie). Los desarrolladores de<br>
>>> >> AngularJS "no tienen ni idea" de Python+Django y prontamente les<br>
>>> >> tocará desarrollar la UI para algo que se ve asi:<br>
>>> >><br>
>>> >>     * POST /foo/ , aqui obtengo el ID del nuevo foo creado, 1<br>
>>> >>     * POST /bar/?foo=1<br>
>>> >>         * Aca el server normalmente iría a una API externa a hacer una<br>
>>> >> consulta sobre foo-1<br>
>>> >>         * En caso de error de la API externa se debería mostrar un<br>
>>> >> error en AngularJS y continuar por un branch de error<br>
>>> >>         * En caso de success se deberia seguir al proximo paso<br>
>>> >>     * POST /spam/<br>
>>> >><br>
>>> >>     Mi pregunta es... existe en Django una manera recomendada para<br>
>>> >> "mockear" esto? Estoy pensando quizás en un flag para runserver que<br>
>>> >> patchee el call a la API externa... quizás:<br>
>>> >><br>
>>> >>     * python manage.py runserver --api-externa-error<br>
>>> >>     * python manage.py runserver --api-externa-success<br>
>>> >><br>
>>> >>     Entonces ellos pueden desarrollar todo lo que necesitan para el<br>
>>> >> caso de errores primero (corriendo en sus maquinas el runserver con<br>
>>> >> --api-externa-error) y despues desarrollar para el caso de success<br>
>>> >> (--api-externa-success)<br>
>>> >><br>
>>> >>     Se que lo que acabo de escribir es realizable, pero no se si es<br>
>>> >> recomendable.<br>
>>> >><br>
>>> >>     Cual es la mejor forma de solucionar esto teniendo en cuenta los<br>
>>> >> infinitamente bajos conocimientos de python de mis desarrolladores<br>
>>> >> angular?<br>
>>> >><br>
>>> >> Saludos,<br>
>>> >> --<br>
>>> >> Andrés Riancho<br>
>>> >> Project Leader at w3af - <a href="http://w3af.org/" target="_blank">http://w3af.org/</a><br>
>>> >> Web Application Attack and Audit Framework<br>
>>> >> Twitter: @w3af<br>
>>> >> GPG: 0x93C344F3<br>
>>> >> _______________________________________________<br>
>>> >> pyar mailing list <a href="mailto:pyar@python.org.ar">pyar@python.org.ar</a><br>
>>> >> <a href="http://listas.python.org.ar/listinfo/pyar" target="_blank">http://listas.python.org.ar/listinfo/pyar</a><br>
>>> >><br>
>>> >> PyAr - Python Argentina - Sitio web: <a href="http://www.python.org.ar/" target="_blank">http://www.python.org.ar/</a><br>
>>> >><br>
>>> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de<br>
>>> >> Argentina - <a href="http://www.usla.org.ar" target="_blank">http://www.usla.org.ar</a><br>
>>> ><br>
>>> ><br>
>>> > No lo llegué a usar pero en la documentación de Django REST Framework<br>
>>> > me<br>
>>> > encontré con Apiary [0] y que según parece te permite hacer mock [1] de<br>
>>> > una<br>
>>> > API REST.<br>
>>> ><br>
>>> > [0] <a href="http://apiary.io" target="_blank">http://apiary.io</a><br>
>>> > [1] <a href="http://apiary.io/how-it-works" target="_blank">http://apiary.io/how-it-works</a><br>
>>><br>
>>> Podría intentar hacer algo con apiary, pero no parece ser lo que estoy<br>
>>> buscando.<br>
>>><br>
>>> Estuve pensando un rato más y creo que voy a ir por un camino como:<br>
>>>  * Definir un /config/ resource que solo este definido para DEBUG=True<br>
>>>  * Ese config toma POSTs como {"mock-feature-1": true} ,<br>
>>> {"mock-feature-1": false}, {"mock-feature-3": "{"foo": "bar"}"}<br>
>>>  * Despues en el handler tengo funciones que en base a<br>
>>> "mock-feature-3" hacen monkey-patching de alguna funcion para que<br>
>>> devuelva {"foo": "bar"}<br>
>>>  * El UI developer debería poder abrir una consola mientras que esta<br>
>>> desarrollando y tirar comandos como estos para cambiar las<br>
>>> "respuestas" de la API externa:<br>
>>>         - curl <a href="http://127.0.0.1:8000/1.0/config/" target="_blank">http://127.0.0.1:8000/1.0/config/</a> -XPOST -H "Accept:<br>
>>> application/json" -H "Content-Type: application/json" -d<br>
>>> '{"mock-feature-1": false}'<br>
>>>         - curl <a href="http://127.0.0.1:8000/1.0/config/" target="_blank">http://127.0.0.1:8000/1.0/config/</a> -XPOST -H "Accept:<br>
>>> application/json" -H "Content-Type: application/json" -d<br>
>>> '{"mock-feature-1": true}'<br>
>>><br>
>>> Tiene el problema de que si el user cambia un archivo .py, runserver<br>
>>> hace un reload y el monkey-patch (muy posiblemente) se pierde.<br>
>>><br>
>>> Saludos,<br>
>>><br>
>>> > Saludos.<br>
>>> ><br>
>>> ><br>
>>> > --<br>
>>> > Sebastián J. Seba<br>
>>> ><br>
>>><br>
> Buenas,<br>
><br>
> Yo desarrollé una app django para justamente armar escenarios con "Fixtures"<br>
> en el server, casualmente lo estoy usando con django-rest-framework y<br>
> Angular.<br>
><br>
> <a href="https://pypi.python.org/pypi/django-remote-scenario/0.2.7" target="_blank">https://pypi.python.org/pypi/django-remote-scenario/0.2.7</a><br>
> <a href="https://github.com/skalanux/django-remote-scenario" target="_blank">https://github.com/skalanux/django-remote-scenario</a><br>
><br>
> Por ahi te sirve.<br>
><br>
> Saludos<br>
> Juan Manuel<br>
><br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> pyar mailing list <a href="mailto:pyar@python.org.ar">pyar@python.org.ar</a><br>
> <a href="http://listas.python.org.ar/listinfo/pyar" target="_blank">http://listas.python.org.ar/listinfo/pyar</a><br>
><br>
> PyAr - Python Argentina - Sitio web: <a href="http://www.python.org.ar/" target="_blank">http://www.python.org.ar/</a><br>
><br>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de<br>
> Argentina - <a href="http://www.usla.org.ar" target="_blank">http://www.usla.org.ar</a><br>
<br>
<br>
<br>
--<br>
Andrés Riancho<br>
Project Leader at w3af - <a href="http://w3af.org/" target="_blank">http://w3af.org/</a><br>
Web Application Attack and Audit Framework<br>
Twitter: @w3af<br>
GPG: 0x93C344F3<br>
_______________________________________________<br>
pyar mailing list <a href="mailto:pyar@python.org.ar">pyar@python.org.ar</a><br>
<a href="http://listas.python.org.ar/listinfo/pyar" target="_blank">http://listas.python.org.ar/listinfo/pyar</a><br>
<br>
PyAr - Python Argentina - Sitio web: <a href="http://www.python.org.ar/" target="_blank">http://www.python.org.ar/</a><br>
<br>
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - <a href="http://www.usla.org.ar" target="_blank">http://www.usla.org.ar</a><br>
</div></div></blockquote></div><br></div></div>