@classmethod
def by(cls, **kw):
try:
- return cls.selectBy(limit=1, **kw)[0]
+ return cls.selectBy(**kw)[0]
except IndexError:
raise SQLObjectNotFound, "The object %s with columns %s does not exist" % (cls.__name__, kw)
except IndexError:
return None
+ @classmethod
+ def faltaCompilar(cls, entrega, connection=None):
+ no_compilados = cls.selectBy(entregaID=entrega.id, compila=None,
+ connection=connection).count()
+ no_probados = cls.selectBy(entregaID=entrega.id, compila=True,
+ finPruebas=None, connection=connection).count()
+ return no_compilados + no_probados
+
+ def chrootPath(self, caso_de_prueba):
+ return path.join(self.path, 'pruebas', caso_de_prueba.nombre)
+
def _get_path(self):
curso = self.inscripto.curso
entrega = self.entrega
'%s.%s.%s' % (curso.curso, entrega.nroEjercicio, entrega.entrega),
'%s.%s' % (self.inscripto.padron, self.numero))
- def _get_chrootPath(self):
- return path.join(self.path, 'chroot')
-
def _get_pruebasPasadas(self):
+ if not self.compila: return False
for p in self.pruebas:
- if not p.pasada:
- return False
+ if not p.pasada: return False
return True
def _get_pruebasPublicasPasadas(self):
+ if not self.compila: return False
for p in self.pruebas:
if not p.pasada and not p.casoDePrueba.privado:
return False
return True
def _get_pruebasPrivadasPasadas(self):
+ if not self.compila: return False
for p in self.pruebas:
if not p.pasada and p.casoDePrueba.privado:
return False
def _get_archivosSalida(self):
ent = self.casoDePrueba.archivosEntrada
sal = self.casoDePrueba.archivosSalida
- return frozenset([f for f in os.listdir(self.intento.chrootPath) \
+ return frozenset([f for f in os.listdir(self.intento.chrootPath(self.casoDePrueba)) \
if f in sal or f not in ent and f <> 'tp'])
# vim: set et sw=4 sts=4 :