Exemple #1
0
    def testAplicarParches(self):
        "Aplica todos los parches presentes y verificar que ninguno este aplicado"
        parches = ModeladorDao.getParches(1)
        preaplicados = []
        parchesFallidos = []
        for parche in parches:
            if ModeladorDao.verificarParche(
                    parche["archivoParche"])["aplicado"]:
                preaplicados.append(parche["archivoParche"])
            else:
                #el parche "" debe fallar obligatoriamente. los demas NO
                resultado = ModeladorDao.aplicarParche(parche["archivoParche"])
                if resultado != "1" and parche[
                        "archivoParche"] != "parche1.sql":
                    parchesFallidos.append(parche["archivoParche"])
                elif resultado == "1" and parche[
                        "archivoParche"] == "parche1.sql":
                    parchesFallidos.append(parche["archivoParche"])
        if len(preaplicados) > 0:
            self.fail("Los parches %s estaban aplicados de antemano" %
                      str(preaplicados))
        if len(parchesFallidos) > 0:
            self.fail("Los parches %s fallaron al aplicarse" %
                      str(parchesFallidos))

        parches = ModeladorDao.getParches(0)
        # recordar que solo el parche "parche1.sql" no debio aplicarse
        if len(parches) > 1:
            self.fail("Los parches %s no fueron aplicados" % str(parches))
Exemple #2
0
    def testValidarModelo(self):
        modelos = ModeladorDao.getModelos()
        #primer modelo estara incompleto
        modelo = modelos[0]

        validaciones = ModeladorDao.validarModelo(modelo['idModelo'])

        if len(validaciones) == 0:
            self.fail("se esperaba validaciones")
Exemple #3
0
 def testGeneradoresEntidad(self):
     modelos = ModeladorDao.getModelos()
     modelo = modelos[len(modelos) - 1]
     generadores = ModeladorDao.getGeneradoresByModelo(modelo["idModelo"])
     if generadores is None or len(generadores) == 0:
         self.fail("error recuperando Generadores para Entidades")
     for generador in generadores:
         self.testGenerador(generador, modelo)
     generador = ModeladorDao.getModeloGenerador(
         modelo["idModelo"], generadores[0]["idGenerador"])
     if generador is None:
         self.fail("error recuperando generador individual")
     self.testGenerador(generador, modelo)
Exemple #4
0
def server_crear_objeto_hijo_html ():
    salida = {}
    try:
        nombre = request.forms.get("nombre")
        idJerarquia = request.forms.get("idJerarquia")
        idObjetoPadre = int(request.forms.get("idObjetoPadre"))
        objetoModelo = ModeladorDao.ObjetoModeloDao().nuevoDiccionario()
        objetoModelo["idObjetoPadre"] = idObjetoPadre
        objetoModelo["nombre"] = nombre
        objetoModelo["idJerarquia"] = idJerarquia
        salida = ModeladorDao.crearObjetoHijo( objetoModelo )
        
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #5
0
def generarModelo(modelo , archivo):
    print("inicia GeneradorERScriptSql")
    try:
        fileName = ( "%s%s" % (modelo["nombre"],modelo["__generador"]["extension"]) )
        raiz = ModeladorDao.getRaizModelo(modelo["idModelo"])
        entidades = ModeladorDao.getObjetosModeloByPadre( raiz["idObjeto"] , "Entidades" )
        
        archivo.write("import xpdbdd\n")
        
        for entidad in entidades:
            atributosEntidad = ModeladorDao.getDiccionarioAtributosByObjetoModelo( entidad["idObjeto"] )
            namedQueries = ModeladorDao.getObjetosModeloByPadre(entidad["idObjeto"],"NamedQueries")
            campos =       ModeladorDao.getObjetosModeloByPadre(entidad["idObjeto"],"Campos")
            
            archivo.write("\nclass %sDao(xpdbdd.DaoBase):\n    def __init__(self):" % entidad["nombre"] )
            archivo.write("\n       metamodelo={\"nombreTabla\":\"%s\",\"propiedades\":[],\"namedQueries\":[]}" % atributosEntidad["nombreTabla"] )

            for campo in campos:
                atributosCampo = ModeladorDao. getDiccionarioAtributosByObjetoModelo( campo["idObjeto"] )
                tipo = getTipo(atributosCampo)
                tamano = getCantidad(atributosCampo,"tamano")
                opcional = "0"
                if parseBoolean(atributosCampo["obligatorio"]) == "0":
                    opcional = "1"
                archivo.write("\n       metamodelo[\"propiedades\"].append({\"nombre\":\"%s\",\"nombreCampo\":\"%s\",\"incremental\":%s,\"pk\":%s,\"tipo\":%s,\"tamano\":%s,\"insert\":%s,\"update\":%s,\"opcional\":%s})" % ( campo["nombre"], atributosCampo["nombreCampo"] , parseBoolean(atributosCampo["incremental"]) , parseBoolean(atributosCampo["pk"]) , tipo , tamano , parseBoolean(atributosCampo["insert"]) , parseBoolean(atributosCampo["update"]) , opcional ) )
            
            for namedQuery in namedQueries:
                camposWhere = ModeladorDao.getObjetosModeloByPadre(namedQuery["idObjeto"],"camposWhere")
                namedQuery["camposWhere"] = camposWhere
                camposOrderBy = ModeladorDao.getObjetosModeloByPadre(namedQuery["idObjeto"],"camposOrderBy")
                archivo.write("\n        metamodelo[\"namedQueries\"].append({\"nombre\":\"%s\",\"whereClause\":[%s],\"orderBy\":[%s]})" % ( namedQuery["nombre"] , getListaCampos(camposWhere) , getListaCampos(camposOrderBy) ))
            
            archivo.write( "\n        self.setMetamodelo (metamodelo)" )
            
            for namedQuery in namedQueries:
                camposWhere = namedQuery["camposWhere"]
                archivo.write("\n    \n    def %s (self, conexion" % namedQuery["nombre"] )
                for campoWhere in camposWhere:
                    archivo.write(", %s" % campoWhere["nombre"])
                archivo.write("):")
                archivo.write("\n        return self.getNamedQuery(conexion,\"%s\", {" % namedQuery["nombre"] )
                primercampo = True
                for campoWhere in camposWhere:
                    if not (primercampo):
                        archivo.write(",")
                    archivo.write("\"%s\":%s" % ( campoWhere["nombre"] , campoWhere["nombre"] ))
                    primercampo = False

                archivo.write("} ) ")
            
            archivo.write("\n")
            archivo.flush()
            
        resultado = {"fileName":fileName,"mimeType":modelo["__generador"]["mimeType"]}
        return resultado
    except (Exception) as ex:
        print(repr(ex))
        return {"error":repr(ex)}

            
Exemple #6
0
def server_lista_modelos_html ():
    salida = ("")
    try:
        lista = ModeladorDao.getModelos()
        salida = { 'registros' : lista }
    except (Exception) as ex:
        salida = {'error':repr(ex)}
        print(repr(ex))
    return salida
Exemple #7
0
 def testGenerarScriptSql(self):
     "generacion script"
     archivo = open(config.APP_ROOT + '/test/Seguridad.txt', 'r')
     strImport = archivo.read()
     #print("JSON "+ strImport[:150])
     jsonModelo = json.loads(strImport)
     idModeloImportado = ModeladorDao.importarModelo(jsonModelo)
     generado = ModeladorDao.generarModelo(idModeloImportado, 'SCRIPT_SQL')
     #print("TESTGENERARSCRIPTSQL " + repr(generado))
     if generado is None:
         self.fail("respuesta None ")
     if 'error' in generado:
         self.fail("respuesta con error " + generado['error'])
     if not ('archivos' in generado):
         self.fail("respuesta no contiene lista de archivos")
     if len(generado['archivos']) == 0:
         self.fail("no se generaron archivos")
     if not ('create table' in generado['archivos'][0]['contenido']):
         self.fail("contenido de archivo no esperado")
Exemple #8
0
def server_validar_modelo ():
    salida = {}
    try:
        idModelo = int(request.forms.get("idModelo"))
        salida = {'lista' : ModeladorDao.validarModelo( idModelo ) }
        print(str(salida))
    except (Exception) as ex:
        salida = {'error': repr(ex) }
        print(repr(ex))
    return salida
Exemple #9
0
def server_verificar_parche_html ():
    salida = {}
    try:
        archivoParche = request.forms.get("archivoParche")
        salida = ModeladorDao.verificarParche( archivoParche )
        print(str(salida))
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #10
0
def server_get_catalogo_valor_html ():
    salida = {}
    try:
        idModelo = int(request.forms.get("idModelo"))
        salida = ModeladorDao.getCatalogoByModelo( idModelo )
        print(str(salida))
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #11
0
def server_get_raiz_modelo_html ():
    salida = {}
    try:
        idModelo = int(request.forms.get("idModelo"))
        salida = ModeladorDao.getRaizModelo( idModelo )
        print(str(salida))
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #12
0
def server_get_atributos_objeto_html ():
    salida = {}
    try:
        idObjeto = int(request.forms.get("idObjeto"))
        salida = ModeladorDao.getAtributosByObjetoModelo( idObjeto )
        
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #13
0
def server_get_parches_html ():
    salida = {}
    try:
        incluirAplicados = int(request.forms.get("incluirAplicados"))
        salida = {"__lista":ModeladorDao.getParches( incluirAplicados ) }
        print(str(salida))
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #14
0
def server_get_generadores_html ():
    salida = {}
    try:
        idModelo = int(request.forms.get("idModelo"))
        salida = {"lista":ModeladorDao.getGeneradoresByModelo( idModelo ) }
        print(str(salida))
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #15
0
def server_get_objetos_by_modelo_tipo_html ():
    salida = {}
    try:
        idModelo = int(request.forms.get("idModelo"))
        idTipoMetamodelo = request.forms.get("idTipoMetamodelo")
        salida = {"lista":ModeladorDao.getObjetosModeloByModeloTipo( idModelo ,idTipoMetamodelo ) }
        print(str(salida))
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #16
0
def server_get_objetos_by_padre_html ():
    salida = {}
    try:
        idObjeto = int(request.forms.get("idObjeto"))
        idJerarquia = request.forms.get("idJerarquia")
        salida = {"lista":ModeladorDao.getObjetosModeloByPadre( idObjeto ,idJerarquia ) }
        print(str(salida))
    except (Exception) as ex:
        salida = {}
        print(repr(ex))
    return salida
Exemple #17
0
def server_aplicar_parche_html ():
    salida = ("")
    try:
        archivoParche = request.forms.get("archivoParche")
        salida = ModeladorDao.aplicarParche( archivoParche )
        if config.DEBUG_MODE:
            print(salida)
    except (Exception) as ex:
        salida = (repr(ex))
        print(repr(ex))
    return salida
Exemple #18
0
def server_eliminar_objeto_html ():
    salida = ("")
    try:
        idObjeto = int(request.forms.get("idObjeto"))
        salida = str(ModeladorDao.eliminarObjeto( idObjeto , None ) )
        if config.DEBUG_MODE:
            print("RESULTADO ELIMINAR: %s"%salida)
    except (Exception) as ex:
        salida = (repr(ex))
        print(repr(ex))
    return salida
Exemple #19
0
def server_crear_modelo_html ():
    salida = ("")
    try:
        nombreModelo = request.forms.get("nombreModelo")
        idMetamodelo = int(request.forms.get("idMetamodelo"))
        modelo = ModeladorDao.crearModelo({"idMetamodelo":idMetamodelo,"nombre":nombreModelo})
        salida = modelo
    except (Exception) as ex:
        salida = ("")
        print(repr(ex))
    return salida
Exemple #20
0
 def testGetCatalogos(self):
     lista = ModeladorDao.getCatalogoByModelo(1)
     if len(lista) == 0:
         self.fail("no se pudo recuperar catalogo")
     if not ('BOOLEAN' in lista):
         self.fail("falta catslogo boolean")
     if not ('TIPO_PRIM' in lista):
         self.fail("falta catslogo TIPOS PRIMITIVOS")
     if len(lista['BOOLEAN']) < 2:
         self.fail("catslogo boolean incompleto")
     if len(lista['TIPO_PRIM']) < 10:
         self.fail("catslogo tipos primitivos incompleto")
Exemple #21
0
def server_regenerar_metamodelo_html ():
    salida = ("")
    try:
        idMetamodelo = int(request.forms.get("idMetamodelo"))
        if idMetamodelo is None:
            raise Exception ("Ingreso no autorizado")
        if not ModeladorDao.regenerarMetamodelo():
            raise Exception ("Error en Inicializacion")
        salida = str("Inicializacion Exitosa")
    except (Exception) as ex:
        salida = ( repr(ex) )
    return salida
Exemple #22
0
def server_mover_objeto_html ():
    salida = ("")
    try:
        idObjeto = int(request.forms.get("idObjeto"))
        moverArriba = int(request.forms.get("moverArriba"))
        salida = str(ModeladorDao.moverObjeto( idObjeto , moverArriba ) )
        if config.DEBUG_MODE:
            print("RESULTADO Mover: %s"%salida)
    except (Exception) as ex:
        salida = (repr(ex))
        print(repr(ex))
    return salida
Exemple #23
0
 def testActualizarAtributosObjeto(self):
     modelos = ModeladorDao.getModelos()
     modelo = modelos[len(modelos) - 1]
     raizModelo = ModeladorDao.getRaizModelo(modelo["idModelo"])
     objetoModelo = ModeladorDao.getObjetosModeloByPadre(
         raizModelo["idObjeto"], "Entidades")[0]
     objetoModelo = ModeladorDao.getAtributosByObjetoModelo(
         objetoModelo["idObjeto"])
     #print (str (objetoModelo))
     objetoModelo["nombre"] = ("ABC")
     objetoModelo["descripcion"] = ("CDE")
     objetoModelo["__atributos"] = objetoModelo["_atributos"]
     objetoModelo["__atributos"][0]["valor"] = ("ABC")
     objetoModelo1 = ModeladorDao.actualizarAtributosObjeto(
         objetoModelo, None)
     if objetoModelo1["__errorCode"] != 0:
         self.fail("error act atributos")
     objetoModelo1 = ModeladorDao.getAtributosByObjetoModelo(
         objetoModelo["idObjeto"])
     if objetoModelo["nombre"] != objetoModelo1["nombre"]:
         self.fail("error al actualizar nombre")
     if objetoModelo["descripcion"] != objetoModelo1["descripcion"]:
         self.fail("error al actualizar descripcion")
     if objetoModelo["_atributos"][0]["valor"] != objetoModelo1[
             "_atributos"][0]["valor"]:
         self.fail("error al actualizar atributo")
Exemple #24
0
def server_exportar_modelo_html ():
    salida = ("")
    try:
        idModelo = int(request.forms.get("idModelo"))
        bandera_descargar = request.forms.get("descargar")
        nombreArchivo = request.forms.get("path")
        print("exportando modelo %d" % idModelo)
        modelo = ModeladorDao.exportarModelo(idModelo,nombreArchivo)
        salida = json.dumps( modelo, sort_keys = False, indent = 2, separators = (',',':') )
        if config.DOWNLOAD_ENABLED and bandera_descargar == '1':
            response.set_header("Content-Type","text/txt")
            response.add_header("content-disposition","attachment ;filename=%s.txt" % modelo["nombre"] );
        if config.DEBUG_MODE:
            print(salida)
    except (Exception) as ex:
        salida = ("Error al exportar modelo: "+repr(ex))
        print(repr(ex))
    return salida
Exemple #25
0
def server_generar_modelo_html ():
    archivoSalida = {}
    try:
        print("inicia generarModelo")
        if config.DEBUG_MODE:
            print (request.forms.get("idModelo"))
        
        idModelo = int(request.forms.get("idModelo"))
        idGenerador = request.forms.get("idGenerador")
        
        archivoSalida = ModeladorDao.generarModelo(idModelo, idGenerador)

        #archivoSalida = GeneradorModelo.generarModelo(idModelo,idGenerador)
        #print (str(archivoSalida))
        return archivoSalida
        # return static_file( archivoSalida["fileName"] , root=config.TEMP_ROOT, mimetype= archivoSalida["mimeType"] )
        
    except (Exception) as ex:
        print(repr(ex))
        return {"error":"Error al recuperar modelo"}
Exemple #26
0
def server_importar_modelo_html ():
    salida = ("")
    strImport =("")
    fileImport = None
    try:
        nombreArchivo = request.forms.get("nombreArchivo")
        if nombreArchivo is None:
            fileImport = request.files.get("modeloImportado").file
            strImport = fileImport.read().decode("utf-8")
        else:
            fileImport = open( "%s/%s"%(config.FS_ROOT,nombreArchivo) ,'r')
            strImport = fileImport.read()
        jsonModelo = json.loads(strImport)
        salida = str(ModeladorDao.importarModelo( jsonModelo ) )
    except (Exception) as ex:
        salida = (repr(ex) +  "*" +strImport )
        print(repr(ex))
    finally:
        if not(fileImport is None):
            fileImport.close()
            fileImport = None
    return salida
Exemple #27
0
 def testExportarImportar(self):
     "exporta el primer modelo para importarlo"
     nombreArchivo = ("Documents/export.txt")
     modelos = ModeladorDao.getModelos()
     modelo = modelos[len(modelos) - 1]
     jsonModelo = ModeladorDao.exportarModelo(modelo["idModelo"],
                                              nombreArchivo)
     #print ("Modelo inicial\n%s\n" % str(jsonModelo))
     objetosExportados = len(
         ModeladorDao.getObjetosByModelo(modelo["idModelo"]))
     idModeloImportado = ModeladorDao.importarModelo(jsonModelo)
     jsonModelo = ModeladorDao.exportarModelo(idModeloImportado)
     #print ("Modelo importado\n%s\n" % str(jsonModelo))
     objetosImportados = len(
         ModeladorDao.getObjetosByModelo(idModeloImportado))
     if objetosImportados != objetosExportados:
         self.fail("Importacion o exportacion fallaron")
Exemple #28
0
 def testCrearModeloValido(self):
     conteo = len(ModeladorDao.getModelos())
     #if conteo!=0:
     #    self.fail("no se puede recuperar modelos creado por default")
     modeloDao = ModeladorDao.ModeloDao()
     modelo = modeloDao.nuevoDiccionario()
     modelo["idMetamodelo"] = 1
     modelo["nombre"] = ("ModeloDePrueba")
     modelo = ModeladorDao.crearModelo(modelo)
     if modelo["idModelo"] is None or modelo["idModelo"] == 0:
         self.fail("no se pudo obtener id de Modelo")
     #print ("MODELO CREADO %s"%str (modelo))
     conteo1 = len(ModeladorDao.getModelos())
     if conteo1 != (conteo + 1):
         self.fail("creación  de modelo no ha alterado contador")
     raizModelo = ModeladorDao.getRaizModelo(modelo["idModelo"])
     if raizModelo is None or raizModelo["idObjeto"] != modelo[
             "idObjetoRaiz"]:
         self.fail("no se recuperó objetoRaiz")
     modelos = ModeladorDao.getModelos()
     if len(modelos) <= 0:
         self.fail("No se puede consultar modelos")
Exemple #29
0
 def testRegenerarMetamodelo(self):
     if not (ModeladorDao.regenerarMetamodelo()):
         self.fail("Error en Regeneracion de metamodelo")
Exemple #30
0
 def testGetMetamodelos(self):
     lista = ModeladorDao.getMetamodelos()
     if len(lista) == 0:
         self.fail("no se pudo recuperar metamodelos")