Esempio n. 1
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')
Esempio n. 2
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')
Esempio n. 3
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")
Esempio n. 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})
Esempio n. 5
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")
Esempio n. 6
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"
Esempio n. 7
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")
Esempio n. 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")