]> git.llucax.com Git - software/sercom-old.git/blobdiff - src/sercom/sqlo.py
Se atrapan errores STMP de una forma no muy elegante.
[software/sercom-old.git] / src / sercom / sqlo.py
index 47069f52ca6833abaadf20949e32fb10cfb31e3a..c81e066eed114cd7837716fdd0842c4974811707 100644 (file)
@@ -16,7 +16,7 @@ class BaseSQLObject(SQLObject):
     @classmethod
     def by(cls, **kw):
         try:
     @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:
             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
 
             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
     def _get_path(self):
         curso = self.inscripto.curso
         entrega = self.entrega
@@ -171,9 +174,6 @@ class Intento(BaseSQLObject):
             '%s.%s.%s' % (curso.curso, entrega.nroEjercicio, entrega.entrega),
             '%s.%s' % (self.inscripto.padron, self.numero))
 
             '%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:
     def _get_pruebasPasadas(self):
         if not self.compila: return False
         for p in self.pruebas:
@@ -217,7 +217,7 @@ class Prueba(BaseSQLObject):
     def _get_archivosSalida(self):
         ent = self.casoDePrueba.archivosEntrada
         sal = self.casoDePrueba.archivosSalida
     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 :
                     if f in sal or f not in ent and f <> 'tp'])
 
 # vim: set et sw=4 sts=4 :