def test_view_IndexView(self): """ Funcion que realiza el test sobre la vista IndexView que genera lista de roles de sistema """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) # se crean 10 roles de proyecto para controlar que se retorne la lista completa de roles, que seran 10 en total for i in range(10): group = Group.objects.create(name='grupo%s' % i) group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() # verificamos que la vista devuelva el template adecuado request = self.factory.get(reverse('roles_proyecto:index')) request.user = self.user response = IndexView.as_view()(request) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name[0], 'roles_proyecto/index.html') # verificamos los user stories retornados self.assertEqual(len(response.context_data['object_list']), 10) print 'Test de IndexView de Roles de Proyecto realizado exitosamente'
def test_view_eliminar_rol_proyecto(self): """ Funcion que realiza el test sobre la vista que elimina un rol de proyecto """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user5 = User.objects.create_user(username='******', email='*****@*****.**', password='******') # se crea un usuario #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() # se elimna el rol group.delete() consulta = RolProyecto.objects.filter(group__name='grupo').exists() self.assertFalse(consulta) print 'Test de eliminar_rol_proyecto realizado exitosamente'
def test_view_UserStoryCreate(self): """ Funcion que realiza el test sobre la vista UserStoryCreate que crea un nuevo user story """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user3 = User.objects.create_user(username='******', email='*****@*****.**', password='******') # se crea un usuario proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user3) proyecto.save() #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() rolProyecto_Proyecto = RolProyecto_Proyecto.objects.create(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) rolProyecto_Proyecto.save() user_story = UserStory.objects.create(nombre='us', descripcion='desc', valor_negocio=20, proyecto=proyecto) user_story.save() self.assertEqual(user_story.nombre, 'us') self.assertEqual(user_story.valor_negocio, 20) print 'Test de UserStoryCreate realizado exitosamente'
def test_view_SprintBacklogIndexView(self): """ Funcion que realiza el test sobre la vista SprintBacklogIndexView que genera lista de user stories del sprint """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user2 = User.objects.create_user(username='******', email='*****@*****.**', password='******') proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user2) proyecto.save() sprint = Sprint.objects.create(nombre='sprint', duracion=15, proyecto=proyecto) sprint.save() # se crean 10 user stories para controlar que se retorne la lista completa, que seran 10 en total for i in range(10): user_story = UserStory.objects.create(nombre='us%s' % i, descripcion='desc%s' % i, valor_negocio='%d' % i, proyecto=proyecto, sprint=sprint) user_story.save() group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() row_rol = RolProyecto_Proyecto(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) row_rol.save() # verificamos que la vista devuelva el template adecuado request = self.factory.get( reverse('sprints:backlog', args=[proyecto.pk, sprint.pk])) request.user = self.user response = SprintBacklogIndexView.as_view()(request, pk_proyecto=proyecto.pk, pk_sprint=sprint.pk) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name[0], 'sprints/sprint_backlog.html') # verificamos los user stories retornados self.assertEqual(len(response.context_data['object_list']), 10) print 'Test de SprintBacklogIndexView de Sprints realizado exitosamente'
def test_view_UserStoryUpdate(self): """ Funcion que realiza el test sobre la vista UserStoryUpdate que modifica un user story existente """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user4 = User.objects.create_user(username='******', email='*****@*****.**', password='******') # se crea un usuario proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user4) proyecto.save() #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() rolProyecto_Proyecto = RolProyecto_Proyecto.objects.create( user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) rolProyecto_Proyecto.save() user_story = UserStory.objects.create(nombre='us', descripcion='desc', valor_negocio=20, proyecto=proyecto) user_story.save() user_story.valor_tecnico = 30 user_story.save() # se crean nuevos valores para los atributos nuevo_valor = 5 nuevo_nombre = 'hu' # Se modifican los atributos del usuario user_story.valor_negocio = nuevo_valor user_story.nombre = nuevo_nombre user_story.save() self.assertEqual(user_story.valor_negocio, 5) self.assertEqual(user_story.nombre, 'hu') self.assertEqual(user_story.valor_tecnico, 30) print 'Test de UserStoryUpdate realizado exitosamente'
def test_view_VerHistorialUserStory(self): """ Funcion que realiza el test sobre la vista VerHistorialUserStory que muestra el historial de un user story """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user3 = User.objects.create_user(username='******', email='*****@*****.**', password='******') # se crea un usuario proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user3) proyecto.save() #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() rolProyecto_Proyecto = RolProyecto_Proyecto.objects.create(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) rolProyecto_Proyecto.save() user_story = UserStory.objects.create(nombre='us', descripcion='desc', valor_negocio=20, proyecto=proyecto, estado='Activo') user_story.save() # se crean 10 user stories para controlar que se retorne la lista completa de user stories, que seran 10 en total for i in range(10): historial_user_story = HistorialUserStory.objects.create(user_story=user_story, operacion='mod%s' % i, usuario=self.user) historial_user_story.save() # verificamos que la vista devuelva el template adecuado request = self.factory.get(reverse('user_stories:historial', args=[proyecto.pk, user_story.pk])) request.user = self.user response = VerHistorialUserStory.as_view()(request, pk_proyecto=proyecto.pk, pk_user_story=user_story.pk) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name[0], 'user_stories/historial.html') # verificamos los user stories retornados self.assertEqual(len(response.context_data['object_list']), 10) print 'Test de VerHistorialUserStory realizado exitosamente'
def test_view_VerUserStory(self): """ Funcion que realiza el test sobre la vista VerUserStory que despliega la informacion detallada del user story """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user2 = User.objects.create_user(username='******', email='*****@*****.**', password='******') proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user2) proyecto.save() lista = Proyecto.objects.all() #print lista #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() rolProyecto_Proyecto = RolProyecto_Proyecto.objects.create( user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) rolProyecto_Proyecto.save() user_story = UserStory.objects.create(nombre='us', descripcion='desc', valor_negocio=5, proyecto=proyecto) user_story.save() # verificamos que la vista devuelva el template adecuado request = self.factory.get( reverse('user_stories:ver', args=[proyecto.pk, user_story.pk])) request.user = self.user response = VerUserStory.as_view()(request, pk_proyecto=proyecto.pk, pk_user_story=user_story.pk) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name[0], 'user_stories/ver.html') print 'Test de VerUserStory realizado exitosamente'
def test_view_RolProyectoCreate(self): """ Funcion que realiza el test sobre la vista RolProyectoCreate que crea un nuevo rol de proyecto """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() self.assertEqual(rolProyecto.group.name, 'grupo') print 'Test de RolProyectoCreate realizado exitosamente'
def test_view_proyecto_reporte_trabajos_usuario(self): """ Funcion que realiza el test sobre la vista proyecto_reporte_trabajos_usuario que genera el reporte de los trabajos realizados por cada usuario """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user2 = User.objects.create_user(username='******', email='*****@*****.**', password='******') proyecto = Proyecto.objects.create(codigo='co', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user2) for i in range(10): sprint_s = Sprint.objects.create(nombre='sprint%s' % i, duracion='%d' % i, proyecto=proyecto, estado='Activo') sprint_s.save() sprint = Sprint.objects.filter(estado='Activo') group = Group.objects.create(name='Developer') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() row_rol = RolProyecto_Proyecto(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) row_rol.save() # verificamos que la vista devuelva el template adecuado request = self.factory.get( reverse('proyectos:reporte_trabajo_usuario', args=[proyecto.pk])) request.user = self.user view = proyecto_reporte_trabajos_usuario response = view(request, pk=proyecto.pk) self.assertEqual(response.status_code, 200) print 'Test de proyecto_reporte_trabajos_usuario realizado exitosamente'
def test_view_FlujosProyectoIndex(self): """ Funcion que realiza el test sobre la vista FlujosProyectoIndex que genera lista de flujos dentro de un proyecto """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user2 = User.objects.create_user(username='******', email='*****@*****.**', password='******') proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user2) proyecto.save() lista_actividades = [] # se crean 3 actividades para controlar que se retorne la lista completa de sprints, que seran 3 en total for i in range(3): actividad_flujo = Actividad.objects.create(nombre='actividad%s' % i) actividad_flujo.save() lista_actividades.append(actividad_flujo) # se crean 10 flujos para controlar que se retorne la lista completa de flujos, que seran 10 en total for i in range(10): flujo = Flujo.objects.create(nombre='flujo%s' % i, proyecto=proyecto) flujo.actividades = lista_actividades flujo.save() group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() row_rol = RolProyecto_Proyecto(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) row_rol.save() # verificamos que la vista devuelva el template adecuado request = self.factory.get(reverse('flujos:flujos_proyecto_index', args=[proyecto.pk])) request.user = self.user response = FlujosProyectoIndex.as_view()(request, pk_proyecto=proyecto.pk) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name[0], 'flujos/flujos_proyecto_index.html') # verificamos las plantillas de flujo retornados self.assertEqual(len(response.context_data['object_list']), 10) print 'Test de FlujosProyectoIndex realizado exitosamente'
def test_view_IndexView(self): """ Funcion que realiza el test sobre la vista UserIndexView que genera lista de user stories """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user2 = User.objects.create_user(username='******', email='*****@*****.**', password='******') proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user2) proyecto.save() lista = Proyecto.objects.all() #print lista #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() rolProyecto_Proyecto = RolProyecto_Proyecto.objects.create(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) rolProyecto_Proyecto.save() # se crean 10 user stories para controlar que se retorne la lista completa de user stories, que seran 10 en total for i in range(10): user_story = UserStory.objects.create(nombre='us%s' % i, descripcion='desc%s' % i, valor_negocio='%d' % i, proyecto=proyecto) user_story.save() # verificamos que la vista devuelva el template adecuado request = self.factory.get(reverse('user_stories:index', args=[proyecto.pk])) request.user = self.user response = IndexView.as_view()(request, pk_proyecto=proyecto.pk) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name[0], 'user_stories/index.html') # verificamos los user stories retornados self.assertEqual(len(response.context_data['object_list']), 10) print 'Test de IndexView de User Story realizado exitosamente'
def test_view_UserStoryUpdate(self): """ Funcion que realiza el test sobre la vista UserStoryUpdate que modifica un user story existente """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user4 = User.objects.create_user(username='******', email='*****@*****.**', password='******') # se crea un usuario proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user4) proyecto.save() #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() rolProyecto_Proyecto = RolProyecto_Proyecto.objects.create(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) rolProyecto_Proyecto.save() user_story = UserStory.objects.create(nombre='us', descripcion='desc', valor_negocio=20, proyecto=proyecto) user_story.save() user_story.valor_tecnico = 30 user_story.save() # se crean nuevos valores para los atributos nuevo_valor = 5 nuevo_nombre = 'hu' # Se modifican los atributos del usuario user_story.valor_negocio = nuevo_valor user_story.nombre = nuevo_nombre user_story.save() self.assertEqual(user_story.valor_negocio, 5) self.assertEqual(user_story.nombre, 'hu') self.assertEqual(user_story.valor_tecnico, 30) print 'Test de UserStoryUpdate realizado exitosamente'
def test_view_descartar_user_story(self): """ Funcion que realiza el test sobre la vista que cambia el estado de un user story a descartado """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user5 = User.objects.create_user(username='******', email='*****@*****.**', password='******') # se crea un usuario proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user5) proyecto.save() #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() rolProyecto_Proyecto = RolProyecto_Proyecto.objects.create( user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) rolProyecto_Proyecto.save() user_story = UserStory.objects.create(nombre='us', descripcion='desc', valor_negocio=20, proyecto=proyecto, estado='Activo') user_story.save() # se marca al proyecto user_story.estado = 'Descartado' user_story.save() self.assertEqual(user_story.estado, 'Descartado') print 'Test de descartar_user_story realizado exitosamente'
def test_view_FlujoProyectoAsignar(self): """ Funcion que realiza el test sobre la vista FlujoProyectoAsignar que asigna un flujo a un proyecto """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user4 = User.objects.create_user(username='******', email='*****@*****.**', password='******') # se crea un usuario proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user4) proyecto.save() lista_actividades = [] # se crean 3 actividades para controlar que se retorne la lista completa de sprints, que seran 3 en total for i in range(3): actividad_flujo = Actividad.objects.create(nombre='actividad%s' % i) actividad_flujo.save() lista_actividades.append(actividad_flujo) flujo = Flujo.objects.create(nombre='flujo', proyecto=proyecto) flujo.actividades = lista_actividades flujo.save() group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() row_rol = RolProyecto_Proyecto(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) row_rol.save() self.assertEqual(flujo.nombre, 'flujo') self.assertEqual(flujo.proyecto, proyecto) print 'Test de FlujoProyectoAsignar realizado exitosamente'
def test_view_burndown_chart(self): """ Funcion que realiza el test sobre la vista burndown_chart que genera el burndown chart del sprint """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user2 = User.objects.create_user(username='******', email='*****@*****.**', password='******') proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user2) proyecto.save() sprint = Sprint.objects.create(nombre='sprint', duracion=15, proyecto=proyecto) sprint.save() group = Group.objects.create(name='Developer') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() # verificamos que la vista devuelva el template adecuado request = self.factory.get( reverse('sprints:burndown_chart', args=[proyecto.pk, sprint.pk])) request.user = self.user view = detalle_horas response = view(request, pk_proyecto=proyecto.pk, pk_sprint=sprint.pk) self.assertEqual(response.status_code, 200) print 'Test de burndown_chart realizado exitosamente'
def test_view_RolProyectoUpdate(self): """ Funcion que realiza el test sobre la vista RolProyectoUpdate que modifica un rol de proyecto existente """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() # se crean nuevos valores para los atributos nuevo_nombre = 'nuevo_grupo' # Se modifican los atributos del grupo group.name = nuevo_nombre group.save() self.assertEqual(rolProyecto.group.name, 'nuevo_grupo') print 'Test de RolProyectoUpdate realizado exitosamente'
def test_view_descartar_user_story(self): """ Funcion que realiza el test sobre la vista que cambia el estado de un user story a descartado """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user5 = User.objects.create_user(username='******', email='*****@*****.**', password='******') # se crea un usuario proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user5) proyecto.save() #crear rolProyecto y rolProyecto_Proyecto group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() rolProyecto_Proyecto = RolProyecto_Proyecto.objects.create(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) rolProyecto_Proyecto.save() user_story = UserStory.objects.create(nombre='us', descripcion='desc', valor_negocio=20, proyecto=proyecto, estado='Activo') user_story.save() # se marca al proyecto user_story.estado = 'Descartado' user_story.save() self.assertEqual(user_story.estado, 'Descartado') print 'Test de descartar_user_story realizado exitosamente'
def test_view_TareasIndexView(self): """ Funcion que realiza el test sobre la vista TareasIndexView que genera lista de tareas del user stories del sprint """ # se loguea el usuario testuser user = self.client.login(username='******', password='******') self.assertTrue(user) user2 = User.objects.create_user(username='******', email='*****@*****.**', password='******') proyecto = Proyecto.objects.create(codigo='codi', nombre_corto='test', nombre_largo='test', cancelado=False, scrum_master=user2) proyecto.save() sprint = Sprint.objects.create(nombre='sprint', duracion=15, proyecto=proyecto) sprint.save() user_story = UserStory.objects.create(nombre='us', descripcion='desc', valor_negocio=2, proyecto=proyecto, sprint=sprint) user_story.save() group = Group.objects.create(name='grupo') group.save() rolProyecto = RolProyecto(group=group, es_rol_proyecto=True) rolProyecto.save() row_rol = RolProyecto_Proyecto(user=self.user, rol_proyecto=rolProyecto, proyecto=proyecto) row_rol.save() actividad = Actividad(nombre='actividad') actividad.save() estado = Estado(nombre='estado') estado.save() flujo = Flujo(nombre='flujo') flujo.save() for i in range(10): tarea = Tarea.objects.create(user_story=user_story, descripcion='Una descripcion', horas_de_trabajo=20, actividad=actividad, estado=estado, sprint=sprint, flujo=flujo) tarea.save() self.assertEqual(tarea.user_story, user_story) self.assertEqual(tarea.descripcion, 'Una descripcion') self.assertEqual(tarea.horas_de_trabajo, 20) # verificamos que la vista devuelva el template adecuado request = self.factory.get( reverse('sprints:ver_tareas', args=[proyecto.pk, sprint.pk, user_story.pk])) request.user = self.user response = TareasIndexView.as_view()(request, pk_proyecto=proyecto.pk, pk_sprint=sprint.pk, pk_user_story=user_story.pk) self.assertEqual(response.status_code, 200) self.assertEqual(response.template_name[0], 'sprints/ver_tareas.html') # verificamos los user stories retornados self.assertEqual(len(response.context_data['object_list']), 10) print 'Test de TareasIndexView de Sprints realizado exitosamente'