X-Git-Url: https://git.llucax.com/software/sercom-old.git/blobdiff_plain/196cbb9fc2731b208965d8f775769d4d07ec4988..7f32a60f31bd104bc04c102bf6c66dd2af7220e7:/src/sercom/sqlo.py?ds=sidebyside diff --git a/src/sercom/sqlo.py b/src/sercom/sqlo.py index 0c0b59d..c81e066 100644 --- a/src/sercom/sqlo.py +++ b/src/sercom/sqlo.py @@ -16,7 +16,7 @@ class BaseSQLObject(SQLObject): @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) @@ -163,6 +163,9 @@ class Intento(BaseSQLObject): 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 @@ -171,22 +174,21 @@ class Intento(BaseSQLObject): '%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 @@ -215,7 +217,7 @@ class Prueba(BaseSQLObject): 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 :