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")
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)}
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
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")
def testCrearObjetoHijoValido(self): modelos = ModeladorDao.getModelos() modelo = modelos[len(modelos) - 1] raizModelo = ModeladorDao.getRaizModelo(modelo["idModelo"]) #print ("BUSCANDO JERARQUIAS PARA METAMODELO %s, tipo %s"%( modelo["idMetamodelo"], raizModelo["idTipoMetamodelo"] )) jerarquias = ModeladorDao.getJerarquiasByTipo( modelo["idMetamodelo"], raizModelo["idTipoMetamodelo"], "1") if len(jerarquias) == 0: self.fail("no existen jerarquias para tipo raiz") conteoAntes = len( ModeladorDao.getObjetosModeloByPadre(raizModelo["idObjeto"], jerarquias[0]["idJerarquia"])) objetosAnadir = 5 while objetosAnadir > 0: objetosAnadir = objetosAnadir - 1 objetoModelo = ModeladorDao.ModeloDao().nuevoDiccionario() objetoModelo["idModelo"] = modelo["idModelo"] objetoModelo["idTipoMetamodelo"] = jerarquias[0][ "idTipoMetamodeloHijo"] objetoModelo["idObjetoPadre"] = raizModelo["idObjeto"] objetoModelo["idJerarquia"] = jerarquias[0]["idJerarquia"] objetoModelo["nombre"] = ("nuevo%s" % objetoModelo["idTipoMetamodelo"]) objetoModelo["orden"] = 0 objetoModelo["descripcion"] = ("") objetoModelo = ModeladorDao.crearObjetoHijo(objetoModelo) if objetoModelo is None or not ("idObjeto" in objetoModelo ) or objetoModelo["idObjeto"] == 0: self.fail("objeto modelo creado incorrectamente") objetoModelo = ModeladorDao.getAtributosByObjetoModelo( objetoModelo["idObjeto"]) if objetoModelo is None or not ( "idObjeto" in objetoModelo) or not ( "_atributos" in objetoModelo) or objetoModelo["idObjeto"] == 0: self.fail("objeto no puede recuperar atributos") diccionarioAtributos = ModeladorDao.getDiccionarioAtributosByObjetoModelo( objetoModelo["idObjeto"]) if diccionarioAtributos is None or not ("nombreTabla" in diccionarioAtributos): self.fail("objeto no puede recuperar atributos(1)") #print(str( diccionarioAtributos)) listaAntesCambio = ModeladorDao.getObjetosModeloByPadre( raizModelo["idObjeto"], jerarquias[0]["idJerarquia"]) conteoDespues = len(listaAntesCambio) if conteoDespues != (conteoAntes + 5): self.fail("creacion de hijos no consistente") if "1" != ModeladorDao.moverObjeto(listaAntesCambio[2]["idObjeto"], 1): self.fail("falla Cambio Orden") listaDespuesCambio = ModeladorDao.getObjetosModeloByPadre( raizModelo["idObjeto"], jerarquias[0]["idJerarquia"]) if listaAntesCambio[2]["idObjeto"] != listaDespuesCambio[1]["idObjeto"]: self.fail("moverArriba no fue efectivo") if "1" != ModeladorDao.moverObjeto(listaAntesCambio[2]["idObjeto"], 0): self.fail("falla Cambio Orden 1") listaDespuesCambio = ModeladorDao.getObjetosModeloByPadre( raizModelo["idObjeto"], jerarquias[0]["idJerarquia"]) if listaAntesCambio[2]["idObjeto"] != listaDespuesCambio[2]["idObjeto"]: self.fail("moverAbajo no fue efectivo") # verifica items del tipo creado listaDespuesCambio = ModeladorDao.getObjetosModeloByModeloTipo( modelo['idModelo'], jerarquias[0]["idTipoMetamodeloHijo"]) if len(listaDespuesCambio) == 0: self.fail("fallo al obtener elementos por modelo y tipo")