示例#1
0
 def test_reversionarItem(self):
     # escenario
     idusuario = CtrlAdmUsr.insertarUsr("username", "password", "nombre", "apellido", "10101010", "1000")
     idtipoitem = CtrlAdmTipoItem.crearTipoItem("nombre", "descripcion")
     CtrlAdmTipoItem.agregarAtributo(idtipoitem, "nombre", "VARCHAR", "pordefecto")
     CtrlAdmRol.insertarPermiso("200", "nombre", "descripcion")
     idrol = CtrlAdmRol.insertarRol("nombre", "descripcion", [200])
     idproyecto = CtrlAdmProy.crearProy("nombre", "descripcion", 10000, "username")
     idfase = CtrlAdmProy.crearFase("nombre", "descripcion", idproyecto)
     CtrlAdmProy.asignarRolesFase([idrol], idfase)
     CtrlAdmProy.asignarTiposAFase(idfase, [idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto)
     item = CtrlFase.instanciarItem("", "desarrollo", idtipoitem, idfase)
     versionitem = CtrlFase.instanciarVersionItem(
         item.iditem, CtrlAdmUsr.getIdByUsername("username"), "", 0, 0, 0, 1, "actual"
     )
     CtrlFase.crearItem(item, versionitem, [])
     versionitem = CtrlFase.instanciarVersionItem(
         item.iditem, CtrlAdmUsr.getIdByUsername("username"), "modified", 0, 0, 0, 2, "no-actual"
     )
     CtrlFase.modificarItem(item.iditem, versionitem)
     # prueba
     rv = self.login("username", "password")
     rv = self.reversionarItem("Reversionar", 1)
     assert "Item reversionado" in rv.data
     drop_db()
     init_db()
示例#2
0
 def test_reversionarItem(self):
     #escenario
     idusuario=CtrlAdmUsr.insertarUsr('username',
                              'password',
                              'nombre',
                              'apellido',
                              '10101010',
                              '1000')
     idtipoitem=CtrlAdmTipoItem.crearTipoItem('nombre','descripcion')
     CtrlAdmTipoItem.agregarAtributo(idtipoitem,'nombre','VARCHAR','pordefecto')
     CtrlAdmRol.insertarPermiso('200','nombre','descripcion')
     idrol=CtrlAdmRol.insertarRol('nombre','descripcion',[200])
     idproyecto=CtrlAdmProy.crearProy('nombre','descripcion',10000,'username')
     idfase=CtrlAdmProy.crearFase('nombre','descripcion',idproyecto)
     CtrlAdmProy.asignarRolesFase([idrol],idfase)
     CtrlAdmProy.asignarTiposAFase(idfase,[idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto)
     item = CtrlFase.instanciarItem("","desarrollo",idtipoitem,idfase)
     versionitem = CtrlFase.instanciarVersionItem(item.iditem,
                                                 CtrlAdmUsr.getIdByUsername('username'),
                                                 "", 
                                                 0,
                                                 0,
                                                 0,
                                                 1,
                                                 'actual')
     CtrlFase.crearItem(item,versionitem,[])
     versionitem.descripcion=versionitem.descripcion+'-mod'
     idusuario=CtrlAdmUsr.getIdByUsername('username')
     CtrlFase.modificarItem(item.iditem,versionitem,idusuario)
     #prueba
     rv=self.login('username', 'password')
     rv=self.reversionarItem('Reversionar', 1)
     assert 'Item reversionado' in rv.data
示例#3
0
 def test_eliminarLineaBase(self):
     #crear escenario
     idusuario=CtrlAdmUsr.insertarUsr('username',
                              'password',
                              'nombre',
                              'apellido',
                              '10101010',
                              '1000')
     idtipoitem=CtrlAdmTipoItem.crearTipoItem('nombre','descripcion')
     CtrlAdmTipoItem.agregarAtributo(idtipoitem,'nombre','VARCHAR','pordefecto')
     CtrlAdmRol.insertarPermiso('200','nombre','descripcion')
     idrol=CtrlAdmRol.insertarRol('nombre','descripcion',[200])
     idproyecto=CtrlAdmProy.crearProy('nombre','descripcion',10000,'username')
     idfase=CtrlAdmProy.crearFase('nombre','descripcion',idproyecto)
     CtrlAdmProy.asignarRolesFase([idrol],idfase)
     CtrlAdmProy.asignarTiposAFase(idfase,[idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto)
     idlb=CtrlLineaBase.crearLB(idfase)
     idusuario=CtrlAdmUsr.insertarUsr('USERNAME',
                      'PASSWORD',
                      'NOMBRE',
                      'APELLIDO',
                      '10101010',
                      '1000')
     rv=self.login('USERNAME', 'PASSWORD')
     #prueba
     rv=self.eliminarLineaBase(opcion='Eliminar Linea Base',
                               fase= idfase,
                               idlineabase= idlb)
     assert 'Linea Base Eliminada' in rv.data
示例#4
0
def dibujarProyecto(proyecto):
    #inicializar estructuras
    grafo = pydot.Dot(graph_type='digraph',fontname="Verdana",rankdir="LR")
    fases = CtrlAdmProy.getFasesListByProy(proyecto.idproyecto)
    fases=sorted(fases, key=attrgetter('idfase'))
    clusters = []
    clusters.append(None)
    for fase in fases:
        if(fase.estado=='finalizado'):
            cluster = pydot.Cluster(str(fase.posicionfase),
                                    label=str(fase.posicionfase)+") "+fase.nombre,
                                    style="filled",
                                    fillcolor="gray")
        else:
            cluster = pydot.Cluster(str(fase.posicionfase),
                                    label=str(fase.posicionfase)+") "+fase.nombre)            
        clusters.append(cluster)
     
    for cluster in clusters:
        if(cluster!=None):
            grafo.add_subgraph(cluster)
             
    items=getItemsProyecto(proyecto.idproyecto)
    #agregar nodos
    for item in items:
        if(item.idlineabase==None):
            clusters[item.fase.posicionfase].add_node(pydot.Node(str(item.iditem),
                                                                 label=item.nombre))
        elif item.estado=="desarrollo":
            clusters[item.fase.posicionfase].add_node(pydot.Node(str(item.iditem),
                                                                 label=item.nombre,
                                                                 style="filled",
                                                                 fillcolor="blue",
                                                                 fontcolor="white"))
        elif item.estado=="bloqueado":
            clusters[item.fase.posicionfase].add_node(pydot.Node(str(item.iditem),
                                                                 label=item.nombre,
                                                                 style="filled",
                                                                 fillcolor="red",
                                                                 fontcolor="white"))
        elif item.estado=="revision":
            clusters[item.fase.posicionfase].add_node(pydot.Node(str(item.iditem),
                                                                 label=item.nombre,
                                                                 style="filled",
                                                                 fillcolor="violet",
                                                                 fontcolor="white"))
    #agregar arcos
    for item in items:
        relaciones = getRelaciones(item.iditem)
        for relacion in relaciones:
            grafo.add_edge(pydot.Edge(str(item.iditem),str(relacion.alitem)))
    
    date=datetime.now()
    name='grafico'+str(date)+'.jpg'
    grafo.write_jpg(path+'/static/img/'+name)
    return name
示例#5
0
 def test_importarProyecto(self):
     # crear escenario
     idusuario = CtrlAdmUsr.insertarUsr("username", "password", "nombre", "apellido", "10101010", "1000")
     idproyecto = CtrlAdmProy.crearProy("nombre", "descripcion", 10000, "username")
     rv = self.login("username", "password")
     # prueba
     rv = self.app.post("/admProy", data=dict(opcion="Importar", select=idproyecto))
     rv = self.importarProyecto(
         opcion="Aceptar", idproyecto=idproyecto, nombre="NOMBRE", descripcion="DESCRIP", presupuesto="1000"
     )
     assert "Proyecto importado" in rv.data
示例#6
0
 def test_eliminarLineaBase(self):
     # crear escenario
     idusuario = CtrlAdmUsr.insertarUsr("username", "password", "nombre", "apellido", "10101010", "1000")
     idtipoitem = CtrlAdmTipoItem.crearTipoItem("nombre", "descripcion")
     CtrlAdmTipoItem.agregarAtributo(idtipoitem, "nombre", "VARCHAR", "pordefecto")
     CtrlAdmRol.insertarPermiso("200", "nombre", "descripcion")
     idrol = CtrlAdmRol.insertarRol("nombre", "descripcion", [200])
     idproyecto = CtrlAdmProy.crearProy("nombre", "descripcion", 10000, "username")
     idfase = CtrlAdmProy.crearFase("nombre", "descripcion", idproyecto)
     CtrlAdmProy.asignarRolesFase([idrol], idfase)
     CtrlAdmProy.asignarTiposAFase(idfase, [idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto)
     idlb = CtrlLineaBase.crearLB(idfase)
     idusuario = CtrlAdmUsr.insertarUsr("USERNAME", "PASSWORD", "NOMBRE", "APELLIDO", "10101010", "1000")
     rv = self.login("USERNAME", "PASSWORD")
     # prueba
     rv = self.eliminarLineaBase(opcion="Eliminar Linea Base", fase=idfase, idlineabase=idlb)
     assert "Linea Base Eliminada" in rv.data
示例#7
0
 def test_importarProyecto(self):
     #crear escenario
     idusuario=CtrlAdmUsr.insertarUsr('username',
                          'password',
                          'nombre',
                          'apellido',
                          '10101010',
                          '1000')
     idproyecto=CtrlAdmProy.crearProy('nombre','descripcion',10000,'username')
     rv=self.login('username', 'password')
     #prueba
     rv=self.app.post('/admProy',data=dict(opcion='Importar',select=idproyecto))
     rv=self.importarProyecto(opcion='Aceptar',
                              idproyecto=idproyecto,
                              nombre='NOMBRE',
                              descripcion='DESCRIP',
                              presupuesto='1000')
     assert 'Proyecto importado' in rv.data
示例#8
0
 def test_crearLineaBase(self):
     #crear escenario
     idusuario=CtrlAdmUsr.insertarUsr('username',
                              'password',
                              'nombre',
                              'apellido',
                              '10101010',
                              '1000')
     idtipoitem=CtrlAdmTipoItem.crearTipoItem('nombre','descripcion')
     CtrlAdmTipoItem.agregarAtributo(idtipoitem,'nombre','VARCHAR','pordefecto')
     CtrlAdmRol.insertarPermiso('200','nombre','descripcion')
     idrol=CtrlAdmRol.insertarRol('nombre','descripcion',[200])
     idproyecto=CtrlAdmProy.crearProy('nombre','descripcion',10000,'username')
     idfase=CtrlAdmProy.crearFase('nombre','descripcion',idproyecto)
     CtrlAdmProy.asignarRolesFase([idrol],idfase)
     CtrlAdmProy.asignarTiposAFase(idfase,[idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto)
     rv=self.login('username', 'password')
     rv=self.app.post('/abrirProyecto',data=dict(opcion='Abrir',select=idproyecto))
     rv=self.app.post('/proyectoX',data=dict(opcion='Crear Item',fase=idfase))
     rv=self.app.post('/crearItem',data=dict(opcion='Cargar Atributos',
                                             nombre='nombre',
                                             descripcion='descripcion',
                                             tipoItem=idtipoitem,
                                             costo='0',
                                             prioridad='10',
                                             complejidad='100'))
     rv=self.app.post('/cargarAtributos',data=dict(opcion='Aceptar',
                                                   nombre='bydefault',
                                                   descripcion='1',
                                                   costo='10',
                                                   prioridad='1',
                                                   complejidad='1'))
     #prueba
     rv=self.crearLineaBase(opcion='Nueva Linea Base',
                            fase=idfase)
     assert 'Linea Base Creada' in rv.data
示例#9
0
 def test_crearLineaBase(self):
     # crear escenario
     idusuario = CtrlAdmUsr.insertarUsr("username", "password", "nombre", "apellido", "10101010", "1000")
     idtipoitem = CtrlAdmTipoItem.crearTipoItem("nombre", "descripcion")
     CtrlAdmTipoItem.agregarAtributo(idtipoitem, "nombre", "VARCHAR", "pordefecto")
     CtrlAdmRol.insertarPermiso("200", "nombre", "descripcion")
     idrol = CtrlAdmRol.insertarRol("nombre", "descripcion", [200])
     idproyecto = CtrlAdmProy.crearProy("nombre", "descripcion", 10000, "username")
     idfase = CtrlAdmProy.crearFase("nombre", "descripcion", idproyecto)
     CtrlAdmProy.asignarRolesFase([idrol], idfase)
     CtrlAdmProy.asignarTiposAFase(idfase, [idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto)
     rv = self.login("username", "password")
     rv = self.app.post("/abrirProyecto", data=dict(opcion="Abrir", select=idproyecto))
     rv = self.app.post("/proyectoX", data=dict(opcion="Crear", fase=idfase))
     rv = self.app.post(
         "/crearItem",
         data=dict(
             opcion="Cargar Atributos",
             nombre="nombre",
             descripcion="descripcion",
             tipoItem=idtipoitem,
             costo="0",
             prioridad="10",
             complejidad="100",
         ),
     )
     rv = self.app.post(
         "/cargarAtributos",
         data=dict(
             opcion="Aceptar", nombre="bydefault", descripcion="1", costo="10", prioridad="1", complejidad="1"
         ),
     )
     # prueba
     rv = self.crearLineaBase(opcion="Nueva Linea Base", fase=idfase)
     assert "Linea Base Creada" in rv.data
示例#10
0
 def test_importarItem(self):
     # escenario
     idusuario = CtrlAdmUsr.insertarUsr("username", "password", "nombre", "apellido", "10101010", "1000")
     idtipoitem = CtrlAdmTipoItem.crearTipoItem("nombre", "descripcion")
     CtrlAdmTipoItem.agregarAtributo(idtipoitem, "nombre", "VARCHAR", "pordefecto")
     CtrlAdmRol.insertarPermiso("200", "nombre", "descripcion")
     idrol = CtrlAdmRol.insertarRol("nombre", "descripcion", [200])
     idproyecto = CtrlAdmProy.crearProy("nombre", "descripcion", 10000, "username")
     idfase = CtrlAdmProy.crearFase("nombre", "descripcion", idproyecto)
     CtrlAdmProy.asignarRolesFase([idrol], idfase)
     CtrlAdmProy.asignarTiposAFase(idfase, [idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto)
     item = CtrlFase.instanciarItem("", "desarrollo", idtipoitem, idfase)
     versionitem = CtrlFase.instanciarVersionItem(
         item.iditem, CtrlAdmUsr.getIdByUsername("username"), "", 0, 0, 0, 1, "actual"
     )
     CtrlFase.crearItem(item, versionitem, [])
     idproyecto2 = CtrlAdmProy.crearProy("proyecto2", "descripcion", 100000, "username")
     idfase2 = CtrlAdmProy.crearFase("nombre2", "descripcion2", idproyecto2)
     CtrlAdmProy.asignarRolesFase([idrol], idfase2)
     CtrlAdmProy.asignarTiposAFase(idfase2, [idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto2)
     # prueba
     rv = self.login("username", "password")
     rv = self.app.post("/abrirProyecto", data=dict(opcion="Abrir", select=idproyecto2))
     rv = self.app.post("/proyectoX", data=dict(opcion="Crear", fase=idfase2))
     rv = self.app.post("/crearItem", data=dict(opcion="Importar"))
     rv = self.importarItem("Aceptar", item.iditem)
     assert "Item importado para crearse" in rv.data
示例#11
0
 def test_importarItem(self):
     #escenario
     idusuario=CtrlAdmUsr.insertarUsr('username',
                              'password',
                              'nombre',
                              'apellido',
                              '10101010',
                              '1000')
     idtipoitem=CtrlAdmTipoItem.crearTipoItem('nombre','descripcion')
     CtrlAdmTipoItem.agregarAtributo(idtipoitem,'nombre','VARCHAR','pordefecto')
     CtrlAdmRol.insertarPermiso('200','nombre','descripcion')
     idrol=CtrlAdmRol.insertarRol('nombre','descripcion',[200])
     idproyecto=CtrlAdmProy.crearProy('nombre','descripcion',10000,'username')
     idfase=CtrlAdmProy.crearFase('nombre','descripcion',idproyecto)
     CtrlAdmProy.asignarRolesFase([idrol],idfase)
     CtrlAdmProy.asignarTiposAFase(idfase,[idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto)
     item = CtrlFase.instanciarItem("","desarrollo",idtipoitem,idfase)
     versionitem = CtrlFase.instanciarVersionItem(item.iditem,
                                                 CtrlAdmUsr.getIdByUsername('username'),
                                                 "", 
                                                 0,
                                                 0,
                                                 0,
                                                 1,
                                                 'actual')
     CtrlFase.crearItem(item,versionitem,[])
     idproyecto2 = CtrlAdmProy.crearProy('proyecto2','descripcion',100000,'username')  
     idfase2=CtrlAdmProy.crearFase('nombre2','descripcion2',idproyecto2)
     CtrlAdmProy.asignarRolesFase([idrol],idfase2)
     CtrlAdmProy.asignarTiposAFase(idfase2,[idtipoitem])
     CtrlAdmProy.setProyIniciado(idproyecto2)
     #prueba
     rv=self.login('username', 'password')
     rv=self.app.post('/abrirProyecto',data=dict(opcion='Abrir',select=idproyecto2))
     rv=self.app.post('/proyectoX',data=dict(opcion='Crear Item',fase=idfase2))
     rv=self.app.post('/crearItem',data=dict(opcion='Importar'))
     rv=self.importarItem('Aceptar', item.iditem)
     assert 'Item importado para crearse' in rv.data