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')
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")
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')
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})
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
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
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 })
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")
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"
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")
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")
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"
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'