#}}}
class TareaFuente(Tarea): #{{{
+ _inheritable = False
# Joins
comandos = MultipleJoin('ComandoFuente', joinColumn='tarea_id')
#}}}
class TareaPrueba(Tarea): #{{{
+ _inheritable = False
# Joins
comandos = MultipleJoin('ComandoPrueba', joinColumn='tarea_id')
# son casos especiales
activo = BoolCol(notNone=True, default=True)
- def _get_guardar_stdout(self):
- return self.STDOUT in self.archivos_a_guardar
-
- def _get_guardar_stderr(self):
- return self.STDERR in self.archivos_a_guardar
-
- def _get_guardar_stdouterr(self):
- return self.STDOUTERR in self.archivos_a_guardar
-
def __repr__(self, clave='', mas=''):
return ('%s(%s comando=%s, descripcion=%s, retorno=%s, '
'max_tiempo_cpu=%s, max_memoria=%s, max_tam_archivo=%s, '
#}}}
class ComandoFuente(Comando): #{{{
+ _inheritable = False
# Clave
tarea = ForeignKey('TareaFuente', notNone=True, cascade=True)
orden = IntCol(notNone=True)
#}}}
class ComandoPrueba(Comando): #{{{
+ _inheritable = False
RET_PRUEBA = -2 # Espera el mismo retorno que el de la prueba.
# XXX todos los campos de limitación en este caso son multiplicadores para
# los valores del caso de prueba.
#}}}
class CasoDePrueba(Comando): #{{{
+ _inheritable = False
# Clave
enunciado = ForeignKey('Enunciado', cascade=True)
nombre = UnicodeCol(length=40, notNone=True)
#}}}
class ComandoFuenteEjecutado(ComandoEjecutado): #{{{
+ _inheritable = False
# Clave
comando = ForeignKey('ComandoFuente', notNone=True, cascade=False)
entrega = ForeignKey('Entrega', notNone=True, cascade=False)
#}}}
class ComandoPruebaEjecutado(ComandoEjecutado): #{{{
+ _inheritable = False
# Clave
comando = ForeignKey('ComandoPrueba', notNone=True, cascade=False)
prueba = ForeignKey('Prueba', notNone=True, cascade=False)
#}}}
class Prueba(ComandoEjecutado): #{{{
+ _inheritable = False
# Clave
entrega = ForeignKey('Entrega', notNone=True, cascade=False)
caso_de_prueba = ForeignKey('CasoDePrueba', notNone=True, cascade=False)