Exemple #1
0
    def test_Item_complejidad(self):
        """
        CU 33: Agregar Items. Iteración 3
        Test que prueba la creación de un ítem cuya complejidad no está definida y le agrega un valor por defecto

        :return: el assert retorna true si la complejidad por defecto es asignada
        """
        pro = Proyecto(nombre='otroProy',
                       fecha_inicio=timezone.now().date(),
                       numero_fases=5,
                       cant_comite=3,
                       gerente=1)
        pro.save()
        tipo = TipoItem(nombre='tipoTest',
                        descripcion='tipo de prueba',
                        prefijo='TT')
        tipo.save()
        tipo.proyecto.add(pro)
        fase = Fase(nombre='faseTest',
                    descripcion='fase de prueba',
                    estado='abierta',
                    proyecto=pro)
        item = Item(nombre='itemTest',
                    descripcion='descripcion del ítem',
                    tipo_item=tipo,
                    fase=fase)

        self.assertEqual(item.complejidad, 5, 'La complejidad no fue asignada')
Exemple #2
0
    def test_crear_fase(self):
        print("\nTEST: Crear fase")
        Nombre = "prueba"
        Descripcion = "descripcion prueba"
        userPk = '1'
        Usuario = User.objects.get(pk=userPk)

        # creamos un proyecto provisional
        proyecto = Proyecto(Nombre="proyectoPrueba",
                            Lider=Usuario,
                            Descripcion="descripcionProyecto",
                            Fecha_inicio=datetime.now(),
                            Fecha_finalizacion=datetime.now())
        proyecto.save()
        try:
            fase = Fase(Nombre=Nombre,
                        Descripcion=Descripcion,
                        Usuario=Usuario,
                        Proyecto=proyecto)
            fase.save()
        except:
            print("Prueba fallida, no se pudo crear la fase")
            return
        if len(Fase.objects.all()) == 1:
            print("Prueba exitosa, la fase fue creada correctamente")
        else:
            print("Prueba fallida, no se pudo crear la fase")
Exemple #3
0
    def test_Item(self):
        """
        CU 33: Agregar Items. Iteración 3
        Test que prueba la creación de manera correcta de un objeto Item

        :return: los asserts verifican que se haya creado con el nombre correcto, que tenga el tipo de ítem correcto y que haya sido asignado a la fase correcta
        """
        proy = Proyecto(nombre='testProyect',
                        fecha_inicio=timezone.now().date(),
                        numero_fases=5,
                        cant_comite=3,
                        gerente=1)
        proy.save()
        tipo = TipoItem(nombre='tipoTest',
                        descripcion='tipo de prueba',
                        prefijo='TT')
        tipo.save()
        tipo.proyecto.add(proy)
        fase = Fase(nombre='faseTest',
                    descripcion='fase de prueba',
                    estado='abierta',
                    proyecto=proy)
        item = Item(nombre='itemTest',
                    complejidad=5,
                    descripcion='descripcion del ítem',
                    tipo_item=tipo,
                    fase=fase)

        self.assertEqual(item.nombre, 'itemTest', 'No se ha creado el ítem')
        self.assertEqual(item.fase, fase, 'no se añadió a la fase correcta')
        self.assertEqual(item.tipo_item, tipo, 'no tiene el tipo correcto')
Exemple #4
0
def crear_proyecto(request):
    """
    esta vista se encarga de la creación del proyecto, primeramente verifica si el metodo del request es POST, de no
    ser retorna un form vacío y de ser pasa el request como parametro al form y el form retorna como 'cleaned_data'
    los datos para crear el proyecto. Para el gerente se guarda el id del usuario que realiza el request y luego se
    guarda al gerente como el primer usuario participante del proyecto. Además se crean la cantidad de fases que
    indica el atributo del proyecto: 'numero_fases', estas fases se crean con datos provisionales que luego pueden
    ser modificados por el usuario. Finalmente, luego de ser creado el proyecto la vista redirecciona a la otra vista
    ver_proyecto.

    :param request: objeto tipo diccionario que permite acceder a datos
    :return: objeto que se encarga de renderear a crearProyecto.html o en caso de POST redireccion a verProyecto.html
    :rtype: render, redirect
    """
    if request.method == 'POST':
        form = ProyectoForm(request.POST)
        if form.is_valid():
            # primero registramos los atributos en el proyecto
            nombre = form.cleaned_data['nombre']
            fecha_inicio = form.cleaned_data['fecha_inicio']
            numero_fases = form.cleaned_data['numero_fases']
            cant_comite = form.cleaned_data['cant_comite']
            # establecemos al usuario que crea el proyecto como gerente
            gerente = request.user.id
            nuevo_proyecto = Proyecto(nombre=nombre,
                                      fecha_inicio=fecha_inicio,
                                      numero_fases=numero_fases,
                                      cant_comite=cant_comite,
                                      gerente=gerente)
            nuevo_proyecto.save()
            # ponemos al gerente como participante en el proyecto
            participante = Usuario.objects.get(pk=gerente)
            nuevo_proyecto.participantes.add(participante)
            # registramos para auditoría
            auditoria = HistoricalParticipante(
                usuario=participante,
                proyecto=nuevo_proyecto,
                history_user=request.user,
                history_type=HistoricalParticipante.TIPO_AGREGADO)
            auditoria.save()
            # creamos la cantidad de fases para este proyecto
            for x in range(0, nuevo_proyecto.numero_fases):
                nueva_fase = Fase(nombre='',
                                  descripcion='',
                                  proyecto=nuevo_proyecto)
                nueva_fase.save()
            return HttpResponseRedirect(
                reverse('administracion:verProyecto',
                        args=[nuevo_proyecto.id]))
    else:
        form = ProyectoForm()
    return render(request, 'administracion/crearProyecto.html', {'form': form})
Exemple #5
0
    def test_usuariox_rol(self):
        """
        Modelo en el cual se unen los roles, fases, y los proyectos.
        """
        usuario_X = Usuario.objects.create_user(username="******",
                                                email="*****@*****.**",
                                                password="******")
        proyect = Proyecto(nombre='nomB',
                           fecha_inicio=timezone.now().date(),
                           numero_fases=5,
                           cant_comite=3,
                           gerente=1)
        r = Rol(nombre='aprobador',
                proyecto=proyect,
                crear_item=True,
                modificar_item=False,
                desactivar_item=False,
                aprobar_item=True,
                reversionar_item=True,
                crear_relaciones_ph=True,
                crear_relaciones_as=True,
                borrar_relaciones=True)
        fase_X = Fase(
            nombre='fase 1',
            descripcion='Fase que en la cual se incia el analisis del proyecto',
            estado='abierta',
            proyecto=proyect)
        relacion = UsuarioxRol(usuario=usuario_X,
                               rol=r,
                               fase=fase_X,
                               activo=True)

        assert relacion.usuario == usuario_X
        assert relacion.rol == r
        assert relacion.activo != False
Exemple #6
0
    def test_rol(self):
        """
        CU 22:	Crear rol. Iteración 2

        Se prueban que crean los roles correctamente.
        :return: Las afirmaciones devuelven correctamente los parametros, envia un mensaje en caso contrario
        """
        proyecto_x = Proyecto(nombre='nombre',
                              fecha_inicio=timezone.now().date(),
                              numero_fases=5,
                              cant_comite=3,
                              gerente=1)
        role = Rol(nombre='aprobador',
                   proyecto=proyecto_x,
                   crear_item=True,
                   modificar_item=False,
                   desactivar_item=True,
                   aprobar_item=True,
                   reversionar_item=True,
                   crear_relaciones_ph=True,
                   crear_relaciones_as=True,
                   borrar_relaciones=True)
        assert role.crear_item == True
        assert role.reversionar_item != False, "Falla porque no coinciden"
        assert role.proyecto == proyecto_x
Exemple #7
0
def crearproyecto(request):
    rol = ''
    if request.method == 'POST':
        forms = ProyectoForm(request.POST, instance=Proyecto())
        if forms.is_valid():
            # carga informacion para los cuestionaro ReporteFEl,SEGUIMIENTO Y AUDITORIA mandando la instancia el proyecto que se está creando.
            forms.save()
            messages.success(request, 'Proyecto creado con éxito!')
            return redirect('administracion:listarproyecto')
        else:
            messages.warning(request, 'Verifique los campos ingresados')
    else:
        forms = ProyectoForm(instance=Proyecto())
        for g in request.user.groups.all():
            rol = g.name

    return render(request, 'administracion/Proyecto/crearproyecto.html', {
        'form': forms,
        'Rol': rol
    })
Exemple #8
0
    def test_crear_proyecto(self):
        print("\nTEST: Crear proyecto")
        nombre_proyecto ='prueba'
        userPk = '1'
        usuario = User.objects.get(pk=userPk)
        Descripcion = "proyecto prueba"
        Fecha_inicio = datetime.now()
        Fecha_finalizacion = datetime.now()

        try:
            proyecto = Proyecto(Nombre=nombre_proyecto,Lider=usuario,Descripcion=Descripcion,
                                Fecha_inicio=Fecha_inicio,Fecha_finalizacion=Fecha_finalizacion)
            proyecto.save()
        except:
            print("Prueba fallida, no se pudo crear el proyecto")
            return
        if len(Proyecto.objects.all()) == 1:
            print("Prueba exitosa, el proyecto fue creado correctamente")
        else:
            print("Prueba fallida, no se pudo crear el proyecto")
Exemple #9
0
    def test_tipo_item(self):
        """
        CU 29:	Crear tipo de item. Iteración 2

        Se prueban que los tipos de item se crean correctamente.
        :return: La afirmacion devuelve si la creacion fue realizada correctamente, envia un mensaje en caso
        contrario
        """
        proyecto_X = Proyecto(nombre='no',
                              fecha_inicio=timezone.now().date(),
                              numero_fases=5,
                              cant_comite=3,
                              gerente=1)
        proyecto_X.save()
        tipo_item_X = TipoItem(
            nombre='alfanumerico',
            descripcion='Se pueden escribir letras y numeros sin distincion',
            prefijo='TI_1')
        tipo_item_X.save()
        tipo_item_X.proyecto.add(proyecto_X)
        assert tipo_item_X.prefijo != 'TI_2', "falla porque no corresponde"
Exemple #10
0
    def test_crear_fase(self):
        print("\nTEST: Crear fase")
        Nombre = "prueba"
        Descripcion = "descripcion prueba"
        userPk = '1'
        Usuario = User.objects.get(pk=userPk)

        # creamos un proyecto provisional
        proyecto = Proyecto(Nombre="proyectoPrueba",Lider=Usuario,Descripcion="descripcionProyecto",
                                Fecha_inicio=datetime.now(),Fecha_finalizacion=datetime.now())
        proyecto.save()
        try:
            fase = Fase(Nombre=Nombre,Descripcion=Descripcion,Usuario=Usuario,Proyecto=proyecto)
            fase.save()
        except:
            print("Prueba fallida, no se pudo crear la fase")
            return
        if len(Fase.objects.all()) == 1:
            print("Prueba exitosa, la fase fue creada correctamente")
        else:
            print("Prueba fallida, no se pudo crear la fase")
Exemple #11
0
    def test_crear_proyecto(self):
        print("\nTEST: Crear proyecto")
        nombre_proyecto = 'prueba'
        userPk = '1'
        usuario = User.objects.get(pk=userPk)
        Descripcion = "proyecto prueba"
        Fecha_inicio = datetime.now()
        Fecha_finalizacion = datetime.now()

        try:
            proyecto = Proyecto(Nombre=nombre_proyecto,
                                Lider=usuario,
                                Descripcion=Descripcion,
                                Fecha_inicio=Fecha_inicio,
                                Fecha_finalizacion=Fecha_finalizacion)
            proyecto.save()
        except:
            print("Prueba fallida, no se pudo crear el proyecto")
            return
        if len(Proyecto.objects.all()) == 1:
            print("Prueba exitosa, el proyecto fue creado correctamente")
        else:
            print("Prueba fallida, no se pudo crear el proyecto")
Exemple #12
0
    def test_Proyecto(self):
        """
        CU 10: Crear Proyectos. Iteración 2

        Se prueban que los proyectos se crean correctamente.

        :return: Las afirmaciones devuelven true  si fueron creados correctamente, false en caso contrario.
        """
        proyecto_X = Proyecto(nombre='n',
                              fecha_inicio=timezone.now().date(),
                              numero_fases=5,
                              cant_comite=3,
                              gerente=1)
        assert proyecto_X.gerente == 1
        # obs: El nombre es distinto con que se pretende comparar
        assert proyecto_X.nombre != 'hola', "falla porque no corresponde al nombre del proyecto"
Exemple #13
0
    def test_Fase(self):
        """
        CU 18: Crear Fase. Iteración 2.

        Se prueban que las fases se crean correctamente.
        :return: Las afirmaciones devuelven si la creacion fue realizada correctamente, envia un mensaje en caso
        contrario.
        """
        proyecto = Proyecto(nombre='nombre',
                            fecha_inicio=timezone.now().date(),
                            numero_fases=5,
                            cant_comite=3,
                            gerente=1)
        fase_X = Fase(
            nombre='fase 1',
            descripcion='Fase que en la cual se incia el analisis del proyecto',
            estado='abierta',
            proyecto=proyecto)

        assert fase_X.proyecto == proyecto
        assert fase_X.estado != 'cerrada', "falla porque la fase recien inicio por lo que es abierta"
        assert fase_X.nombre == 'fase 1'