]> git.llucax.com Git - software/sercom.git/blob - doc/testdata.py
Agregar nombres especiales para stdin, stdout, stderr y stdouterr.
[software/sercom.git] / doc / testdata.py
1 # vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker :
2
3 from datetime import timedelta
4
5 # Roles
6 r1 = Rol(nombre='admin', permisos=(entregar_tp, admin))
7 r2 = Rol(nombre='alumno', permisos=(entregar_tp,))
8
9 # Usuarios
10 d = Docente(usuario='luca', nombre=u'Leandro Lucarella', password='luca',
11     email='llucax@gmail.com', telefono='4554-1554', roles=[r1], activo=True)
12 a = Alumno(padron='77891', nombre='Tito Puente', password='77891', roles=[r2])
13
14 # Tareas y comandos
15 tf = TareaFuente(nombre='Compilar C con Makefile',
16     terminar_si_falla=True, rechazar_si_falla=True)
17 cf = tf.add_comando(1, 'make tito', retorno=0, max_cant_archivos=15,
18     max_cant_procesos=200, terminar_si_falla=True, rechazar_si_falla=True,
19     archivos_a_guardar=('__stdouterr__',),
20     descripcion='Compila un programa en C con make ' \
21     'sin usar un Makefile (debe ser un solo archivo que se llame tito.c)')
22 tp = TareaPrueba(nombre='Probar', terminar_si_falla=True,
23     rechazar_si_falla=True)
24 cp = tp.add_comando(1, retorno=0, terminar_si_falla=True,
25     rechazar_si_falla=True, descripcion='Prueba normalmente, sin filtros')
26
27 # Enunciados
28 e1 = Enunciado(nombre=u'Un enunciado', anio=2007, cuatrimestre=1, autor=d,
29     descripcion=u'Ejercicio reeee jodido', tareas=(tf, tp))
30 e2 = Enunciado(nombre=u'Otro enunciado', anio=2007, cuatrimestre=1, autor=d,
31     descripcion=u'Ejercicio facilongo', tareas=(tf,))
32 e3 = d.add_enunciado(u'Más enunciados', anio=2007, cuatrimestre=1,
33     descripcion=u'Ejercicio anónimo')
34
35 # Cursos
36 c = Curso(anio=2007, cuatrimestre=1, numero=1, descripcion=u'Martes',
37     docentes=[d], ejercicios=[e1, e2])
38
39 # Casos de prueba
40 cp1 = e1.add_caso_de_prueba(nombre=u'Sin parámetros', retorno=0,
41     descripcion=u'Un caso', comando='./tito')
42 cp2 = e1.add_caso_de_prueba(nombre=u'2 parámetross', retorno=0,
43     comando='./tito --test -c "con espacios"')
44
45 # Ejercicios
46 ej1 = c.ejercicios[0]
47 ej1.grupal = True
48 ej2 = c.ejercicios[1]
49
50 # Instancias de entrega
51 ide = ej1.add_instancia(numero=1, inicio=datetime(2007, 2, 25),
52     fin=datetime(2007, 3, 31, 20), observaciones='Entrega fea', activo=True)
53
54 # Docentes/Alumnos/Grupos inscriptos
55 di = c.docentes[0]
56 ai1 = c.add_alumno(a)
57 ai2 = c.add_alumno(Alumno(padron='83525', nombre=u'Pepe Lui'), tutor=di)
58 g1 = c.add_grupo(5)
59 g2 = c.add_grupo(8, responsable=ai2, miembros=[ai1], tutores=[di])
60 g2.add_miembro(ai2)
61
62 # Entregas
63 archivo_zip = file('doc/entrega.zip').read()
64 ai1.add_entrega(ide, archivos=archivo_zip)
65 entrega = ai2.add_entrega(ide, inicio_tareas=datetime.now(),
66     fin_tareas=datetime.now() + timedelta(0, 0, 1), correcta=True,
67     archivos=archivo_zip)
68 entrega2 = g1.add_entrega(ide, inicio_tareas=datetime.now(),
69     fin_tareas=datetime.now() + timedelta(0, 0, 3), correcta=False,
70     archivos=archivo_zip)
71 d.add_entrega(ide, observaciones='Prueba de docente', archivos=archivo_zip)
72
73 # Comandos ejecutados / pruebas
74 cpe = entrega.add_comando_ejecutado(cf, exito=True,
75     fin=datetime(2007, 2, 25, 10, 13, 34),
76     inicio=datetime(2007, 2, 25, 10, 12, 34))
77 p = entrega.add_prueba(cp1)
78 p.add_comando_ejecutado(cp)
79
80 # Correcciones
81 di.add_correccion(entrega, asignado=datetime(2007, 1, 19), nota=7.5,
82     corregido=datetime.now(), observaciones=u'Le faltó un punto')
83 di.add_correccion(entrega2)
84
85 __connection__.hub.commit()
86