def setUp(self): print("\nTEST 1: Creacion de usuario") usuario1 = Usuario(username='******', password='******') usuario1.save() usuario2 = Usuario(username='******', password='******') usuario2.save() usuario3 = Usuario(username='******', password='******') usuario3.save() print("Creacion de usuarios sin problemas") print("\nTEST 2: Creacion de proyecto") nombre_proyecto = 'prueba' Codigo = 'test' Descripcion = "proyecto prueba" Fecha_inicio = datetime.now() Fecha_finalizacion = datetime.now() Scrum_master = usuario1; Equipo_desarrollo = [usuario1, usuario2] proyecto = Proyecto(nombre_proyecto=nombre_proyecto,descripcion_proyecto=Descripcion, codigo_proyecto=Codigo, estado_proyecto='PENDIENTE', fecha_inicio=Fecha_inicio, fecha_finalizacion=Fecha_finalizacion, scrum_master=Scrum_master,cliente=usuario3 ) proyecto.save() print("TEST: Creacion de proyecto sin problemas") print("\nTEST 3: Asignacion de equipo de desarrollo al proyecto") proyecto.equipo_desarrollo = [usuario1, usuario2, usuario3] proyecto.save() print("TEST: Asignacion de equipo de desarrollo a proyecto sin problemas") print("\nTEST 4: Creacion de sprint") sprint = Sprint(nombre_sprint="Mi Test Sprint", id_proyecto=proyecto, fecha_inicio=Fecha_inicio, fecha_fin=Fecha_finalizacion, estado='finalizado') sprint.save() print("TEST: Creacion de sprint sin problemas") print("\nTEST 5: Creacion de US") nombre = 'userstorytest' codigo = 'test-123' descripcion = 'test' usuario_asignado = Usuario.objects.get(username='******') proyecto_pertenece = Proyecto.objects.get(nombre_proyecto=nombre_proyecto) size = 10 prioridad = 'ALTA' valor_tecnico = 8 valor_de_negocio = 4 userstory = UserStory(nombre=nombre, descripcion=descripcion, prioridad=prioridad, codigo=codigo, valor_de_negocio=valor_de_negocio, valor_tecnico=valor_tecnico, usuario_asignado=usuario_asignado, proyecto=proyecto_pertenece, size=size) userstory.save() print("Creacion de US sin problemas") print("\nTEST 6: Asignacion de usuario a US") userstory.usuario_asignado = usuario3 userstory.save() print("TEST: Asignacion de usuario a US sin problemas") print("\nTEST 7: Creacion de flujo") flujo = Flujo(nombre_flujo="flujo prueba",id_Proyecto=proyecto) flujo.save() print("TEST: Creacion de flujo sin problemas") print("\nTEST 8: Creacion de actividades") actividad1 = Actividad(id_Flujo_id=flujo.id,nombre_actividad="actividad_prueba 1",orden_actividad=1,estado_actividad="ToDo") actividad1.save() actividad2 = Actividad(id_Flujo_id=flujo.id,nombre_actividad="actividad_prueba 2",orden_actividad=2,estado_actividad="ToDo") actividad2.save() actividad3 = Actividad(id_Flujo_id=flujo.id,nombre_actividad="actividad_prueba 3",orden_actividad=3,estado_actividad="ToDo") actividad3.save() print("TEST: Creacion de actividades sin problemas") print("\nTEST 9: Asignacion de US a Sprint") userstory.nombre_sprint = sprint.nombre_sprint userstory.save() print("TEST: Asignacion de US a Sprint sin problemas") print("\nTEST 10: Asignacion de US a Flujo") userstory.id_flujo = flujo.id userstory.save() print("TEST: Asignacion de US a Flujo sin problemas") print("\nTEST 11: Asignacion de US a Actividad") userstory.id_actividad = actividad1.id userstory.estado_en_actividad = "ToDo" userstory.save() print("TEST: Asignacion de US a Actividad sin problemas") print("\nTEST 12: Creacion de Tablero Kanban") tablero = TableroKanban(nombre_tablero='Tablero de prueba unitaria',estado_tablero='Abierto',id_sprint_id=sprint.id,id_flujo_id=flujo.id,id_proyecto=proyecto,nombre_proyecto=proyecto.nombre_proyecto) tablero.save() print("TEST: Creacion de Tablero Kanban sin problemas")
def setUp(self): print("\nTEST 1: Creacion de usuario") usuario1 = Usuario(username='******', password='******') usuario1.save() usuario2 = Usuario(username='******', password='******') usuario2.save() usuario3 = Usuario(username='******', password='******') usuario3.save() print("Creacion de usuarios sin problemas") print("\nTEST 2: Creacion de proyecto") nombre_proyecto = 'prueba' Codigo = 'test' Descripcion = "proyecto prueba" Fecha_inicio = datetime.now() Fecha_finalizacion = datetime.now() Scrum_master = usuario1 Equipo_desarrollo = [usuario1, usuario2] proyecto = Proyecto(nombre_proyecto=nombre_proyecto, descripcion_proyecto=Descripcion, codigo_proyecto=Codigo, estado_proyecto='PENDIENTE', fecha_inicio=Fecha_inicio, fecha_finalizacion=Fecha_finalizacion, scrum_master=Scrum_master, cliente=usuario3) proyecto.save() print("TEST: Creacion de proyecto sin problemas") print("\nTEST 3: Asignacion de equipo de desarrollo al proyecto") proyecto.equipo_desarrollo = [usuario1, usuario2, usuario3] proyecto.save() print( "TEST: Asignacion de equipo de desarrollo a proyecto sin problemas" ) print("\nTEST 4: Creacion de sprint") sprint = Sprint(nombre_sprint="Mi Test Sprint", id_proyecto=proyecto, fecha_inicio=Fecha_inicio, fecha_fin=Fecha_finalizacion, estado='finalizado') sprint.save() print("TEST: Creacion de sprint sin problemas") print("\nTEST 5: Creacion de US") nombre = 'userstorytest' codigo = 'test-123' descripcion = 'test' usuario_asignado = Usuario.objects.get(username='******') proyecto_pertenece = Proyecto.objects.get( nombre_proyecto=nombre_proyecto) size = 10 prioridad = 'ALTA' valor_tecnico = 8 valor_de_negocio = 4 userstory = UserStory(nombre=nombre, descripcion=descripcion, prioridad=prioridad, codigo=codigo, valor_de_negocio=valor_de_negocio, valor_tecnico=valor_tecnico, usuario_asignado=usuario_asignado, proyecto=proyecto_pertenece, size=size) userstory.save() print("Creacion de US sin problemas") print("\nTEST 6: Asignacion de usuario a US") userstory.usuario_asignado = usuario3 userstory.save() print("TEST: Asignacion de usuario a US sin problemas") print("\nTEST 7: Creacion de flujo") flujo = Flujo(nombre_flujo="flujo prueba", id_Proyecto=proyecto) flujo.save() print("TEST: Creacion de flujo sin problemas") print("\nTEST 8: Creacion de actividades") actividad1 = Actividad(id_Flujo_id=flujo.id, nombre_actividad="actividad_prueba 1", orden_actividad=1, estado_actividad="ToDo") actividad1.save() actividad2 = Actividad(id_Flujo_id=flujo.id, nombre_actividad="actividad_prueba 2", orden_actividad=2, estado_actividad="ToDo") actividad2.save() actividad3 = Actividad(id_Flujo_id=flujo.id, nombre_actividad="actividad_prueba 3", orden_actividad=3, estado_actividad="ToDo") actividad3.save() print("TEST: Creacion de actividades sin problemas") print("\nTEST 9: Asignacion de US a Sprint") userstory.nombre_sprint = sprint.nombre_sprint userstory.save() print("TEST: Asignacion de US a Sprint sin problemas") print("\nTEST 10: Asignacion de US a Flujo") userstory.id_flujo = flujo.id userstory.save() print("TEST: Asignacion de US a Flujo sin problemas") print("\nTEST 11: Asignacion de US a Actividad") userstory.id_actividad = actividad1.id userstory.estado_en_actividad = "ToDo" userstory.save() print("TEST: Asignacion de US a Actividad sin problemas") print("\nTEST 12: Creacion de Tablero Kanban") tablero = TableroKanban(nombre_tablero='Tablero de prueba unitaria', estado_tablero='Abierto', id_sprint_id=sprint.id, id_flujo_id=flujo.id, id_proyecto=proyecto, nombre_proyecto=proyecto.nombre_proyecto) tablero.save() print("TEST: Creacion de Tablero Kanban sin problemas")
def crear_tablero_kanban_view(request, id_proyecto): """ Permite la generacion de un tablero kanban al proyecto que posee el id de id_proyecto :param request: :param id_proyecto: :return: """ proyecto_seleccionado = Proyecto.objects.get(pk=id_proyecto) flujos = Flujo.objects.filter(id_Proyecto=id_proyecto) sprints = Sprint.objects.filter(id_proyecto=id_proyecto, estado="Activo") sprints_copy = [] tablero = TableroKanban() error = "Ninguno" # Controla que no exista otro sprint que se encuentre activo lista_sprint = list(Sprint.objects.filter(id_proyecto=id_proyecto)) sprints_activos = [] for item in lista_sprint: if item.estado == "ACTIVO": sprints_activos.append(item) if len(sprints_activos) >= 1: error = "sprint activo" context = { "tablero": tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request) ) # Controla que existan sprint antes de realizar la creacion del tablero if len(sprints) == 0: error = "cree sprint" context = { "tablero": tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request) ) uss = [] # Obtiene los us que fueron asignados a ese sprint for item in sprints: uss = UserStory.objects.filter(proyecto_id=id_proyecto, nombre_sprint=item.nombre_sprint) if len(uss) > 0: sprints_copy.append(item) for item in uss: if item.usuario_asignado_id: error == "ningun_usuario" if error == "ningun_usuario": context = { "tablero": tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request) ) sprints = sprints_copy # Controla que existan mas de un US dentro del sprint if len(sprints) == 0: error = "asigne us" context = { "tablero": tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request) ) # Controla que existan flujos para la creacion del tablero kanban if len(flujos) == 0: error = "asigne flujo" context = { "tablero": tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request) ) if request.method == "POST" and "Guardar" in request.POST: if ( request.POST.get("nombre_tablero") is not None and request.POST.get("sprint") is not None and request.POST.get("flujo") is not None ): try: error = "Contenido" tablero1 = TableroKanban.objects.get( id_proyecto_id=id_proyecto, id_sprint_id=request.POST.get("sprint"), id_flujo_id=request.POST.get("flujo"), ) # Si pasa esta linea quiere decir que existe un tablero con las mismas caracteristicas en el proyecto, debe mostrar el error context = { "tablero": tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, "tablero_copy": tablero1, } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request) ) except: # Si salta la excepcion quiere decir que no existe un tablero con el mismo contenido, por tanto puede continuar pass try: # va a buscar en la bd si existe el tablero con el nombre indicado, de esa manera se # controla que los nombre de los tableros no coincidan error = "Nombre" tablero2 = TableroKanban.objects.get(nombre_tablero=request.POST.get("nombre_tablero")) # si pasa a esta linea quiere decir que el tablero existe, debe mostrar un cuadro indicando el error context = { "tablero": tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, "tablero_copy": tablero1, } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request) ) except: pass tablero.nombre_tablero = request.POST.get("nombre_tablero") tablero.estado_tablero = request.POST.get("estado") sprint = Sprint.objects.get(pk=request.POST.get("sprint")) flujo = Flujo.objects.get(pk=request.POST.get("flujo")) flujo.id_sprint = sprint.id flujo.save() uss = UserStory.objects.filter(proyecto_id=id_proyecto, nombre_sprint=sprint.nombre_sprint) actividades = list(Actividad.objects.filter(id_Flujo_id=flujo)) for us in uss: if us.estado != "En Curso": us.estado = "En Curso" us.id_flujo = flujo.id us.id_actividad = actividades[0].id us.save() tablero.id_sprint = sprint tablero.id_flujo = flujo tablero.id_proyecto = Proyecto.objects.get(pk=id_proyecto) tablero.nombre_proyecto = Proyecto.objects.get(pk=id_proyecto).nombre_proyecto tablero.save() Sistema().registrar( "Creado tablero kanban " + request.POST.get("nombre_tablero") + " para proyecto " + Proyecto.objects.get(pk=id_proyecto).nombre_proyecto, request.user.username, "Ninguno", ) redireccion = reverse("listar_tablero_kanban_proyecto", args=[id_proyecto]) return HttpResponseRedirect(redireccion) else: error = "Incompleto" context = { "tablero": tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request) )
def crear_tablero_kanban_view(request, id_proyecto): """ Permite la generacion de un tablero kanban al proyecto que posee el id de id_proyecto :param request: :param id_proyecto: :return: """ proyecto_seleccionado = Proyecto.objects.get(pk=id_proyecto) flujos = Flujo.objects.filter(id_Proyecto=id_proyecto) sprints = Sprint.objects.filter(id_proyecto=id_proyecto, estado="Activo") sprints_copy = [] tablero = TableroKanban() error = "Ninguno" #Controla que no exista otro sprint que se encuentre activo lista_sprint = list(Sprint.objects.filter(id_proyecto=id_proyecto)) sprints_activos = [] for item in lista_sprint: if item.estado == "ACTIVO": sprints_activos.append(item) if len(sprints_activos) >= 1: error = "sprint activo" context = { 'tablero': tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request)) #Controla que existan sprint antes de realizar la creacion del tablero if len(sprints) == 0: error = "cree sprint" context = { 'tablero': tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request)) uss = [] #Obtiene los us que fueron asignados a ese sprint for item in sprints: uss = UserStory.objects.filter(proyecto_id=id_proyecto, nombre_sprint=item.nombre_sprint) if len(uss) > 0: sprints_copy.append(item) for item in uss: if item.usuario_asignado_id: error == "ningun_usuario" if error == "ningun_usuario": context = { 'tablero': tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request)) sprints = sprints_copy #Controla que existan mas de un US dentro del sprint if len(sprints) == 0: error = "asigne us" context = { 'tablero': tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request)) #Controla que existan flujos para la creacion del tablero kanban if len(flujos) == 0: error = "asigne flujo" context = { 'tablero': tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request)) if request.method == 'POST' and 'Guardar' in request.POST: if request.POST.get('nombre_tablero') is not None and request.POST.get( 'sprint') is not None and request.POST.get( "flujo") is not None: try: error = "Contenido" tablero1 = TableroKanban.objects.get( id_proyecto_id=id_proyecto, id_sprint_id=request.POST.get('sprint'), id_flujo_id=request.POST.get('flujo')) #Si pasa esta linea quiere decir que existe un tablero con las mismas caracteristicas en el proyecto, debe mostrar el error context = { 'tablero': tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, 'tablero_copy': tablero1 } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request)) except: #Si salta la excepcion quiere decir que no existe un tablero con el mismo contenido, por tanto puede continuar pass try: #va a buscar en la bd si existe el tablero con el nombre indicado, de esa manera se #controla que los nombre de los tableros no coincidan error = "Nombre" tablero2 = TableroKanban.objects.get( nombre_tablero=request.POST.get('nombre_tablero')) #si pasa a esta linea quiere decir que el tablero existe, debe mostrar un cuadro indicando el error context = { 'tablero': tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error, 'tablero_copy': tablero1 } return render_to_response( "Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request)) except: pass tablero.nombre_tablero = request.POST.get('nombre_tablero') tablero.estado_tablero = request.POST.get('estado') sprint = Sprint.objects.get(pk=request.POST.get("sprint")) flujo = Flujo.objects.get(pk=request.POST.get("flujo")) flujo.id_sprint = sprint.id flujo.save() uss = UserStory.objects.filter( proyecto_id=id_proyecto, nombre_sprint=sprint.nombre_sprint) actividades = list(Actividad.objects.filter(id_Flujo_id=flujo)) for us in uss: if us.estado != "En Curso": us.estado = "En Curso" us.id_flujo = flujo.id us.id_actividad = actividades[0].id us.save() tablero.id_sprint = sprint tablero.id_flujo = flujo tablero.id_proyecto = Proyecto.objects.get(pk=id_proyecto) tablero.nombre_proyecto = Proyecto.objects.get( pk=id_proyecto).nombre_proyecto tablero.save() Sistema().registrar( "Creado tablero kanban " + request.POST.get('nombre_tablero') + " para proyecto " + Proyecto.objects.get(pk=id_proyecto).nombre_proyecto, request.user.username, "Ninguno") redireccion = reverse('listar_tablero_kanban_proyecto', args=[id_proyecto]) return HttpResponseRedirect(redireccion) else: error = "Incompleto" context = { 'tablero': tablero, "proyecto": proyecto_seleccionado, "flujos": flujos, "sprints": sprints, "error": error } return render_to_response("Gestion_de_tablero_kanban/crear_tablero.html", context, context_instance=RequestContext(request))