[pyar] Nueva herramienta libre - Validación con la comunidad

Aníbal Lovaglio aniballovaglio en yahoo.com.ar
Jue Oct 18 17:29:41 ART 2012



De: Daniel Moisset <dmoisset en machinalis.com>
Para: Python Argentina <pyar en python.org.ar> 
CC: "sercom2012 en googlegroups.com" <sercom2012 en googlegroups.com> 
Enviado: jueves, 18 de octubre de 2012 17:10
Asunto: Re: [pyar] Nueva herramienta libre - Validación con la comunidad
 

2012/10/18 Aníbal Lovaglio <aniballovaglio en yahoo.com.ar>

Buenas tardes a todos.
>
>Estamos encarando un proyecto como trabajo profesional de nuestras carreras y 
nos sugirieron que sería una buena idea validar nuestro enfoque con la 
comunidad de python. Cabe destacar que ninguno de los dos integrantes 
del equipo tiene mucha experiencia en esta tecnología y podríamos 
valernos de su experiencia para ahorrarnos algunos disgustos.
>
>El objetivo del proyecto es construir una herramienta online para alumnos y docentes de materias de programación de las carreras de sistemas, cuyo 
fin es lograr la entrega y corrección sistematizada de trabajos 
prácticos de programación. Se tratará de una herramienta de Software 
Libre con un diseño incremental por módulos y tenemos intención de dejar el camino allanado para futuros equipos que quieran continuar con el 
desarrollo de nuevas funcionalidades.
>

Me parece piola, más de una vez como docente me hubiera venido bien (ahora no tanto, desde que hacemos que los alumnos entreguen en repositorios SVN, la parte más tediosa que era juntar todo y tener registro del día de entrega se hace sola). Pero poder correr tests contra la entrega y cosas así sería muy piola

 
La aplicación está planteada como un servicio de acceso web, al cuál los 
usuarios podrán acceder desde cualquier navegador. Los alumnos cargarían sus entregas, estas serían desempaquetadas, compiladas en caso de ser 
necesario, y probadas según los criterios establecidos por los docentes. Los docentes podrían acceder a revisar los resultados de estas 
entregas, generar reportes o cargar nuevos trabajos prácticos para ser 
entregados.
>
>

Lo único peligroso acá es el sandboxing. Si estás corriendo código que el alumno sigue, deberías poner a correr esto de forma que ese código no te pueda reventar el sistema (por error o por malicia). Es decir, debería correr bajo otro usuario, con limites de tiempo, uso de memoria, disco, etc.
 
Respecto a nuestra implementación. Como se podrán imaginar, python es el 
lenguaje elegido. Para hacernos la vida sencilla, elegimos Django como 
framework principal, para aprovechar lo que ofrece para la separación de vista y modelo, y el ORM que permite sin esfuerzo, usar tanto 
PostgreSQL como MySQL, o SQLite para instalaciones livianas o para 
descargarse la aplicación y probarla fácilmente. Además, estamos usando 
Travis para integración continua ya que el proyecto está hosteado en 
github y Travis permite asociarse los repositorios de github sin 
esfuerzo.
>
>Finalmente, para asegurar la calidad de la aplicación, automatizamos el testing. En principio el testing unitario no debiera presentar problemas ya que 
unittest viene incluído dentro de las utilidades de django mismo, aunque hasta ahora se nos presentaron algunos problemas para correrlos con 
SCons

el unittest que trae django es en realidad el que trae python (con un par de extendidas cuando uno quiere testear algunas cosas django-específicas). Que necesidad compleja tenes al correrlo que no te cubra "./manage.py test" ?

--> Lo que no me cubre "./manage.py test" es lo de tests funcionales con Behave. Queremos que se corran todos los tests que tengamos cuando hagamos push al repo. Esto incluye los tests de features que hayamos incluido. Además, de alguna manera, correr tareas "por consola", nos hace depender un poco de Travis, y mudarnos de server de CI, o que alguien quiera forkearse nuestro proyecto y desarrollar cosas nuevas, sería más laborioso. En cambio, tenerlo  todo armado para que un "make", "mvn" o "scons" haga que se despliegue todo serí mucho más conveniente.
 
, pero ya consultamos y vamos a investigar como hacerlo con fabric. Además estamos usando pruebas funcionales de integración con la 
herramienta Behave, y alguna ayuda de drivers de selenium.
>
>En resumen, las herramientas que estamos utilizando y queremos saber si son las más adecuadas, o si se sabe de algún problema puntual en la combinación de unas con otras, son las siguientes
>
>Frameword: Django 1.4.1 (http://django.es/)
>Repositorio: Git-Hub (https://github.com)
>Servidor de integración continua: Travis (https://travis-ci.org/)
>Pruebas Funcionales automatizadas: Behave 1.2.2 (http://packages.python.org/behave/)
>
>

Así en general suena bien

Saludos, 
   D.

_______________________________________________
pyar mailing list pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

Saludos!
Aníbal
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20121018/b7c3116b/attachment.html>


More information about the pyar mailing list