def setUp(self): super(AuditoriaDeGestionTests, self).setUp() self.supervisor = self.crear_supervisor_profile() self.client.login(username=self.supervisor.user.username, password=PASSWORD) self.campana = CampanaFactory.create(estado=Campana.ESTADO_ACTIVA) self.campana.supervisors.add(self.supervisor.user) self.opcion_calificacion_gestion = OpcionCalificacionFactory.create( campana=self.campana, tipo=OpcionCalificacion.GESTION) self.opcion_calificacion_no_gestion = OpcionCalificacionFactory.create( campana=self.campana, tipo=OpcionCalificacion.NO_ACCION) self.contacto_gestion = ContactoFactory.create() self.campana.bd_contacto.contactos.add(self.contacto_gestion) self.contacto_no_gestion = ContactoFactory.create() self.campana.bd_contacto.contactos.add(self.contacto_no_gestion) self.agente = self.crear_agente_profile() self.calificacion_gestion = CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion_gestion, agente=self.agente, contacto=self.contacto_gestion) self.calificacion_no_gestion = CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion_no_gestion, agente=self.agente, contacto=self.contacto_no_gestion)
def setUp(self): self.usuario_admin_supervisor = UserFactory(is_staff=True, is_supervisor=True) self.usuario_admin_supervisor.set_password(self.PWD) self.usuario_admin_supervisor.save() self.agente_profile = AgenteProfileFactory.create(user=self.usuario_admin_supervisor) self.nombre_calificacion = NombreCalificacionFactory.create(nombre=self.CALIFICACION_NOMBRE) self.nombre_calificacion_gestion = NombreCalificacionFactory.create(nombre=self.GESTION) self.campana_activa = CampanaFactory.create( estado=Campana.ESTADO_ACTIVA, type=Campana.TYPE_PREVIEW) self.contacto_calificado_gestion = ContactoFactory( bd_contacto=self.campana_activa.bd_contacto) self.contacto_calificado_no_accion = ContactoFactory( bd_contacto=self.campana_activa.bd_contacto) self.contacto_no_atendido = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto) self.contacto_no_calificado = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto) self.opcion_calificacion_gestion = OpcionCalificacionFactory.create( campana=self.campana_activa, nombre=self.nombre_calificacion_gestion.nombre, tipo=OpcionCalificacion.GESTION) self.opcion_calificacion_noaccion = OpcionCalificacionFactory.create( campana=self.campana_activa, nombre=self.nombre_calificacion.nombre, tipo=OpcionCalificacion.NO_ACCION) self.telefono1 = self.contacto_calificado_gestion.telefono self.telefono2 = self.contacto_calificado_no_accion.telefono self.telefono3 = self.contacto_no_atendido.telefono self.telefono4 = self.contacto_no_calificado.telefono self.generador_log_llamadas = GeneradorDeLlamadaLogs() self.generador_log_llamadas.generar_log( self.campana_activa, False, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile, contacto=self.contacto_calificado_gestion, duracion_llamada=self.DURACION_LLAMADA, callid=1) self.generador_log_llamadas.generar_log( self.campana_activa, False, 'COMPLETEAGENT', self.telefono2, agente=self.agente_profile, contacto=self.contacto_calificado_no_accion, duracion_llamada=self.DURACION_LLAMADA, callid=2) self.generador_log_llamadas.generar_log( self.campana_activa, True, 'NOANSWER', self.telefono3, agente=self.agente_profile, contacto=self.contacto_no_atendido, callid=3) self.generador_log_llamadas.generar_log( self.campana_activa, True, 'COMPLETEOUTNUM', self.telefono4, agente=self.agente_profile, contacto=self.contacto_no_calificado, duracion_llamada=0, callid=4) callid_gestion = LlamadaLog.objects.get( contacto_id=self.contacto_calificado_gestion.pk, event='COMPLETEAGENT').callid callid_no_accion = LlamadaLog.objects.get( contacto_id=self.contacto_calificado_no_accion.pk, event='COMPLETEAGENT').callid self.calif_gestion = CalificacionClienteFactory.create( opcion_calificacion=self.opcion_calificacion_gestion, agente=self.agente_profile, contacto=self.contacto_calificado_gestion, callid=callid_gestion) self.calif_no_accion = CalificacionClienteFactory.create( opcion_calificacion=self.opcion_calificacion_noaccion, agente=self.agente_profile, contacto=self.contacto_calificado_no_accion, callid=callid_no_accion) CalificacionCliente.history.all().update(history_change_reason='calificacion') self.client.login(username=self.usuario_admin_supervisor.username, password=self.PWD)
def test_vista_contactos_telefono_repetidos_devuelve_informacion_correcta(self): campana_dialer = self.campana_dialer telefono = '3511234567' n_contactos_repetidos = 3 ContactoFactory.create_batch( n_contactos_repetidos, bd_contacto=campana_dialer.bd_contacto, telefono=telefono) url = reverse( 'campana_contactos_telefono_repetido', args=[campana_dialer.pk, telefono, 'false']) response = self.client.get(url, follow=True) self.assertEqual(campana_dialer.bd_contacto.contactos.count(), n_contactos_repetidos + 1) self.assertEqual(response.context_data['contactos'].count(), n_contactos_repetidos)
def setUp(self): self.agente_1 = self.crear_agente_profile() self.agente_2 = self.crear_agente_profile() self.supervisor = self.crear_supervisor_profile() self.campana_preview = CampanaFactory.create( type=Campana.TYPE_PREVIEW, tiempo_desconexion=2, estado=Campana.ESTADO_ACTIVA) QueueFactory.create(campana=self.campana_preview) self._hacer_miembro(self.agente_1, self.campana_preview) self._hacer_miembro(self.agente_2, self.campana_preview) self.contacto_1 = ContactoFactory.create(bd_contacto=self.campana_preview.bd_contacto) self.contacto_2 = ContactoFactory.create(bd_contacto=self.campana_preview.bd_contacto) self.campana_preview.establecer_valores_iniciales_agente_contacto(False, False) self.client.login(username=self.agente_1.user.username, password=PASSWORD)
def setUp(self): super(GeneradorDeLlamadaLogsTests, self).setUp() self.manual = CampanaFactory.create(type=Campana.TYPE_MANUAL) self.usr_agente1 = UserFactory.create(username='******', is_agente=True) self.agente1 = AgenteProfileFactory.create(user=self.usr_agente1) self.dialer = CampanaFactory.create(type=Campana.TYPE_DIALER) self.contacto_d = ContactoFactory(bd_contacto=self.dialer.bd_contacto) self.entrante = CampanaFactory.create(type=Campana.TYPE_ENTRANTE) self.preview = CampanaFactory.create(type=Campana.TYPE_PREVIEW) self.contacto_p = ContactoFactory(bd_contacto=self.preview.bd_contacto)
def setUp(self): super(CalificacionTests, self).setUp() self.agente_1 = self.crear_agente_profile() self.agente_2 = self.crear_agente_profile() self.agente_3 = self.crear_agente_profile() self.supervisor = self.crear_supervisor_profile() self.campana = CampanaFactory.create(estado=Campana.ESTADO_ACTIVA, type=Campana.TYPE_MANUAL) self.campana.supervisors.add(self.supervisor.user) self.nombre_calificacion_agenda = NombreCalificacion.objects.get( nombre=settings.CALIFICACION_REAGENDA) self.opcion_calificacion_agenda = OpcionCalificacionFactory.create( campana=self.campana, nombre=self.nombre_calificacion_agenda.nombre, tipo=OpcionCalificacion.AGENDA) self.contacto_1 = ContactoFactory.create() self.campana.bd_contacto.contactos.add(self.contacto_1) self.contacto_2 = ContactoFactory.create() self.campana.bd_contacto.contactos.add(self.contacto_2) self.calificacion_1 = CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion_agenda, agente=self.agente_1, contacto=self.contacto_1) self.agenda_1 = AgendaContactoFactory( agente=self.agente_1, contacto=self.contacto_1, campana=self.campana, tipo_agenda=AgendaContacto.TYPE_PERSONAL) self.calificacion_2 = CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion_agenda, agente=self.agente_2, contacto=self.contacto_2) self.agenda_2 = AgendaContactoFactory( agente=self.agente_2, contacto=self.contacto_2, campana=self.campana, tipo_agenda=AgendaContacto.TYPE_PERSONAL) self.queue = QueueFactory.create(campana=self.campana) QueueMemberFactory.create(member=self.agente_1, queue_name=self.queue) QueueMemberFactory.create(member=self.agente_2, queue_name=self.queue) self.client.login(username=self.supervisor.user.username, password=PASSWORD)
def _agregar_campana_y_contacto(self, agente_profile, tipo_campana): campana = CampanaFactory.create(type=tipo_campana, tiempo_desconexion=3, estado=Campana.ESTADO_ACTIVA) self._hacer_miembro(agente_profile, campana) contacto = ContactoFactory.create(bd_contacto=campana.bd_contacto) return campana, contacto
def test_api_crea_nueva_calificacion_con_nuevo_contacto_con_valores_metadata( self): token_agente = Token.objects.get(user=self.agente_profile.user).key client = APIClient() client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente) observaciones = 'calificacion externa' phone = '1232343523' id_contacto_externo = 'contacto_externo_1' url = reverse('api_disposition_new_contact-list') post_data = { 'phone': phone, 'idExternalContact': id_contacto_externo, 'idDispositionOption': self.opcion_calificacion.pk, 'comments': observaciones, } contacto_a_crear = ContactoFactory.build( bd_contacto=self.campana_activa.bd_contacto) post_data.update(contacto_a_crear.obtener_datos()) post_data.pop('telefono') calificaciones_count = CalificacionCliente.objects.count() contactos_count = Contacto.objects.count() client.post(url, post_data) self.assertEqual(CalificacionCliente.objects.count(), calificaciones_count + 1) self.assertEqual(Contacto.objects.count(), contactos_count + 1) self.assertTrue( Contacto.objects.filter(datos=contacto_a_crear.datos).exists())
def setUp(self): super(CalificacionTests, self).setUp() self.agente_profile = self.crear_agente_profile() self.usuario_agente = self.agente_profile.user self.campana = CampanaFactory.create() self.nombre_opcion_gestion = NombreCalificacionFactory.create() self.nombre_calificacion_agenda = NombreCalificacion.objects.get( nombre=settings.CALIFICACION_REAGENDA) self.formulario = FormularioFactory() self.campo_formulario = FieldFormularioFactory(formulario=self.formulario) self.opcion_calificacion_gestion = OpcionCalificacionFactory.create( campana=self.campana, nombre=self.nombre_opcion_gestion.nombre, tipo=OpcionCalificacion.GESTION, formulario=self.formulario) self.opcion_calificacion_agenda = OpcionCalificacionFactory.create( campana=self.campana, nombre=self.nombre_calificacion_agenda.nombre, tipo=OpcionCalificacion.AGENDA) self.opcion_calificacion_camp_manual = OpcionCalificacionFactory.create( campana=self.campana, nombre=self.nombre_opcion_gestion.nombre) self.opcion_calificacion_no_accion = OpcionCalificacionFactory.create( campana=self.campana, tipo=OpcionCalificacion.NO_ACCION) self.contacto = ContactoFactory.create() self.campana.bd_contacto.contactos.add(self.contacto) self.queue = QueueFactory.create(campana=self.campana) self.calificacion_cliente = CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion_camp_manual, agente=self.agente_profile, contacto=self.contacto) QueueMemberFactory.create(member=self.agente_profile, queue_name=self.queue) self.client.login(username=self.usuario_agente.username, password=PASSWORD)
def setUp(self): super(ReglaIncidenciaPorCalificacionTests, self).setUp() self.admin = self.crear_administrador() self.client.login(username=self.admin.username, password=PASSWORD) self.formulario = FormularioFactory() self.campo_formulario = FieldFormularioFactory( formulario=self.formulario) self.campana = CampanaFactory.create(type=Campana.TYPE_DIALER) self.nombre_opcion_1 = NombreCalificacionFactory.create() self.opcion_calificacion_1 = OpcionCalificacionFactory.create( campana=self.campana, nombre=self.nombre_opcion_1.nombre, tipo=OpcionCalificacion.GESTION, formulario=self.formulario) self.campana.opciones_calificacion.add(self.opcion_calificacion_1) self.nombre_opcion_2 = NombreCalificacionFactory.create() self.opcion_calificacion_2 = OpcionCalificacionFactory.create( campana=self.campana, nombre=self.nombre_opcion_2.nombre, tipo=OpcionCalificacion.NO_ACCION) self.campana.opciones_calificacion.add(self.opcion_calificacion_2) self.contacto = ContactoFactory.create() self.campana.bd_contacto.contactos.add(self.contacto) self.campana_extra = CampanaFactory.create(type=Campana.TYPE_DIALER) self.nombre_opcion_extra = NombreCalificacionFactory.create() self.opcion_calificacion_extra = OpcionCalificacionFactory.create( campana=self.campana_extra, nombre=self.nombre_opcion_extra.nombre, tipo=OpcionCalificacion.NO_ACCION) self.campana_extra.opciones_calificacion.add( self.opcion_calificacion_extra)
def _obtener_datos_post_adicionar_contacto(self, campana): contacto_nuevo = ContactoFactory.build(bd_contacto=campana.bd_contacto) post_data = {'telefono': contacto_nuevo.telefono} columnas = json.loads(contacto_nuevo.bd_contacto.metadata) datos_contacto = json.loads(contacto_nuevo.datos) for columna, valor in zip(columnas['nombres_de_columnas'][1:], datos_contacto): post_data[columna] = valor return post_data
def crear_campanas(self): self.campanas = {} estado = Campana.ESTADO_ACTIVA for (tipo, nombre_tipo) in Campana.TYPES_CAMPANA: nombre = 'campana_simulada_%s' % nombre_tipo qs = Campana.objects.filter(nombre=nombre) if qs.count() == 1: campana = qs[0] else: campana = CampanaFactory.create( type=tipo, estado=estado, nombre=nombre, reported_by=self.agentes[0].user) QueueFactory(campana=campana, name=campana.nombre) ContactoFactory.create_batch(5, bd_contacto=campana.bd_contacto) self.campanas[tipo] = campana
def test_modificacion_contacto_desde_lista_de_contactos_actualiza_agente_en_contacto(self): contacto = ContactoFactory() agente_en_contacto = AgenteEnContactoFactory( contacto_id=contacto.pk, campana_id=self.campana_preview.id, telefono_contacto=contacto.telefono) telefono_nuevo = contacto.telefono + '111' self.assertEqual(agente_en_contacto.telefono_contacto, contacto.telefono) url = reverse('contacto_update', args=[self.campana_preview.pk, contacto.pk]) post_data = { 'telefono': telefono_nuevo, 'datos': str(["xxxxxx", "yyyyy", "CORDOBA", "21000003"]), } self.client.post(url, post_data) contacto.refresh_from_db() self.assertEqual(contacto.telefono, str(telefono_nuevo)) agente_en_contacto.refresh_from_db() self.assertEqual(agente_en_contacto.telefono_contacto, str(telefono_nuevo))
def test_llamada_manual_telefono_con_n_contactos_redirecciona_vista_escoger_contacto(self): contacto = self.contacto ContactoFactory(bd_contacto=self.campana.bd_contacto, telefono=contacto.telefono) telefono = contacto.telefono url = reverse('calificar_por_telefono', kwargs={'pk_campana': self.campana.pk, 'telefono': telefono}) response = self.client.get(url, follow=True) self.assertTemplateUsed(response, 'agente/contactos_telefonos_repetidos.html')
def no_puede_calificar_si_no_esta_asignado(self): campana2 = CampanaFactory.create() contacto2 = ContactoFactory.create(bd_contacto=campana2.bd_contacto) url = reverse('calificacion_formulario_update_or_create', kwargs={'pk_campana': campana2.pk, 'pk_contacto': contacto2.pk}) response = self.client.get(url, follow=True) self.assertContains(response, _("No tiene permiso para calificar llamadas de esa campaña."))
def setUp(self): self.supervisor1 = self.crear_supervisor_profile(rol=User.SUPERVISOR) self.supervisor2 = self.crear_supervisor_profile(rol=User.SUPERVISOR) self.agente1 = self.crear_agente_profile() self.agente2 = self.crear_agente_profile() self.campana1 = CampanaFactory(estado=Campana.ESTADO_ACTIVA) self.queue_campana_1 = QueueFactory(campana=self.campana1) QueueMemberFactory(member=self.agente1, queue_name=self.queue_campana_1) self.campana1.supervisors.add(self.supervisor1.user) self.campana2 = CampanaFactory(estado=Campana.ESTADO_ACTIVA) self.queue_campana_2 = QueueFactory(campana=self.campana2) QueueMemberFactory(member=self.agente2, queue_name=self.queue_campana_2) self.campana2.supervisors.add(self.supervisor2.user) self.contacto = ContactoFactory(id_externo='id_ext') self.campana3 = CampanaFactory(estado=Campana.ESTADO_ACTIVA) self.campana3.bd_contacto.genera_contactos([self.contacto]) self.campana3.supervisors.add(self.supervisor1.user) self.opcion_calificacion = OpcionCalificacionFactory( campana=self.campana1, tipo=OpcionCalificacion.GESTION) self.calificacion = CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion) update_change_reason(self.calificacion, 'calificacion') self.grabacion1 = GrabacionFactory.create( duracion=1, agente=self.agente1, callid=self.calificacion.callid, campana=self.campana1, id_cliente='-1') self.grabacion2 = GrabacionFactory(duracion=1, agente=self.agente1, campana=self.campana1) self.grabacion3 = GrabacionFactory(duracion=1, agente=self.agente1, campana=self.campana1) self.marca_campana1 = GrabacionMarcaFactory( callid=self.grabacion1.callid) self.marca_campana2 = GrabacionMarcaFactory( callid=self.grabacion2.callid) self.grabacion2_1 = GrabacionFactory.create(duracion=1, agente=self.agente2, campana=self.campana2) self.marca_campana2_1 = GrabacionMarcaFactory( callid=self.grabacion2_1.callid) self.grabacion3_1 = GrabacionFactory.create( tel_cliente=self.contacto.telefono, agente=self.agente2, campana=self.campana3)
def test_api_vista_contactos_campanas_es_accessible_usando_token_agente(self): ContactoFactory(bd_contacto=self.campana_activa.bd_contacto) token_agente = Token.objects.get(user=self.agente_profile.user).key client = APIClient() client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente) url = reverse('api_contactos_campana', args=(self.campana_activa.pk,)) response = client.get(url, {'search[value]': 1, 'start': 1, 'length': 10, 'draw': 10}, format='json') self.assertEqual(response.status_code, 200) self.assertEqual(response.data['recordsTotal'], 1)
def test_api_muestra_solo_las_calificaciones_que_ha_hecho_el_agente_que_accede(self): contacto_nuevo = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto) CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion, contacto=contacto_nuevo) token_agente = Token.objects.get(user=self.agente_profile.user).key client = APIClient() client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente) url = reverse('api_disposition-list') response = client.get(url) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 1)
def _setUp_campana_dialer(self): self.campana_dialer = CampanaFactory.create(type=Campana.TYPE_DIALER) self.campana_dialer.opciones_calificacion.add(self.opcion_calificacion_gestion) self.campana_dialer.opciones_calificacion.add(self.opcion_calificacion_agenda) self.contacto_dialer = ContactoFactory.create() self.campana_dialer.bd_contacto.contactos.add(self.contacto_dialer) self.queue_dialer = QueueFactory.create(campana=self.campana_dialer) QueueMemberFactory.create(member=self.agente_profile, queue_name=self.queue_dialer)
def test_campos_bloqueados_no_se_modifican(self): self.campana_preview.campos_bd_no_editables = json.dumps(['telefono']) self.campana_preview.save() contacto = ContactoFactory() agente_en_contacto = AgenteEnContactoFactory( contacto_id=contacto.pk, campana_id=self.campana_preview.id, telefono_contacto=contacto.telefono) telefono_viejo = contacto.telefono telefono_nuevo = contacto.telefono + '111' url = reverse('contacto_update', args=[self.campana_preview.pk, contacto.pk]) post_data = { 'telefono': telefono_nuevo, 'datos': str(["xxxxxx", "yyyyy", "CORDOBA", "21000003"]), 'bd_contacto': contacto.bd_contacto.pk } self.client.post(url, post_data) contacto.refresh_from_db() agente_en_contacto.refresh_from_db() self.assertEqual(contacto.telefono, telefono_viejo) self.assertEqual(agente_en_contacto.telefono_contacto, str(telefono_viejo))
def setUp(self): super(StatusCalificacionLlamadaTest, self).setUp() user = self.crear_user_agente(username='******') self.agente = self.crear_agente_profile(user) self.agente.grupo.obligar_calificacion = True self.client.login(username=user.username, password=PASSWORD) self.campana = CampanaFactory.create() QueueFactory(campana=self.campana) QueueMemberFactory.create(member=self.agente, queue_name=self.campana.queue_campana) self.contacto = ContactoFactory.create() self.campana.bd_contacto.contactos.add(self.contacto)
def test_api_adiciona_calificacion_ids_internos(self): token_agente = Token.objects.get(user=self.agente_profile.user).key client = APIClient() client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente) observaciones = 'calificacion externa' contacto = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto) url = reverse('api_disposition-list') post_data = { 'idContact': contacto.pk, 'idDispositionOption': self.opcion_calificacion.pk, 'comments': observaciones } calificaciones_count = CalificacionCliente.objects.count() client.post(url, post_data) self.assertEqual(CalificacionCliente.objects.count(), calificaciones_count + 1)
def setUp(self): super(BaseReporteDeLlamadasTests, self).setUp() self.hasta = fecha_hora_local(now()) self.durante = fecha_hora_local(now() - timedelta(days=1)) self.desde = datetime_hora_minima_dia(self.hasta) - timedelta(days=1) self.supervisor = SupervisorProfileFactory(is_administrador=True) self.agente1 = AgenteProfileFactory() self.agente2 = AgenteProfileFactory() self.agente3 = AgenteProfileFactory() self.manual = CampanaFactory.create(type=Campana.TYPE_MANUAL, nombre='camp-manual-1', estado=Campana.ESTADO_ACTIVA) self.dialer = CampanaFactory.create(type=Campana.TYPE_DIALER, nombre='camp-dialer-1', estado=Campana.ESTADO_ACTIVA) self.contacto_d = ContactoFactory(bd_contacto=self.dialer.bd_contacto) self.entrante = CampanaFactory.create(type=Campana.TYPE_ENTRANTE, nombre='camp-entrante-1', estado=Campana.ESTADO_ACTIVA) self.preview = CampanaFactory.create(type=Campana.TYPE_PREVIEW, nombre='camp-preview-1', estado=Campana.ESTADO_ACTIVA) self.contacto_p = ContactoFactory(bd_contacto=self.preview.bd_contacto) self.campanas = [ self.manual, self.dialer, self.entrante, self.preview, ]
def setUp(self, *args, **kwargs): self.agente = self.crear_agente_profile() self.sitio_externo = SitioExternoFactory() self.campana = CampanaFactory(sitio_externo=self.sitio_externo, tipo_interaccion=2) self.contacto = ContactoFactory() self.call_data = { 'call_id': '1234', 'agent_id': str(self.agente.id), 'telefono': '351351351', 'id_contacto': str(self.contacto.id), 'rec_filename': 'rec_filename', 'call_wait_duration': '44', } super(TestsSitioExterno, self).setUp(*args, **kwargs)
def test_api_adiciona_calificacion_ids_internos_no_se_accede_credenciales_no_agente(self): observaciones = 'calificacion externa' contacto = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto) url = reverse('api_disposition-list') post_data = { 'idContact': contacto.pk, 'idAgent': self.agente_profile.pk, 'idDispositionOption': self.opcion_calificacion.pk, 'comments': observaciones } token_supervisor = Token.objects.get(user=self.supervisor_admin.user).key client = APIClient() client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_supervisor) url = reverse('api_disposition-list') response = client.post(url, post_data) self.assertEqual(response.status_code, 403)
def test_api_adiciona_calificacion_ids_externos(self): self.client.login(username=self.agente_profile.user.username, password=PASSWORD) observaciones = 'calificacion externa' id_contacto_externo = 'contacto_externo_1' AgenteEnSistemaExternoFactory( agente=self.agente_profile, sistema_externo=self.sistema_externo) ContactoFactory(bd_contacto=self.campana_activa.bd_contacto, id_externo=id_contacto_externo) url = reverse('api_disposition-list') post_data = { 'idExternalSystem': self.sistema_externo.pk, 'idContact': id_contacto_externo, 'idDispositionOption': self.opcion_calificacion.pk, 'comments': observaciones } calificaciones_count = CalificacionCliente.objects.count() self.client.post(url, post_data) self.assertEqual(CalificacionCliente.objects.count(), calificaciones_count + 1)
def test_calificacion_cliente_modificacion_gestion_por_no_accion(self, post): contacto_califica = ContactoFactory.create() self.campana.bd_contacto.contactos.add(contacto_califica) calificacion = CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion_gestion, agente=self.agente_profile, contacto=contacto_califica) RespuestaFormularioGestionFactory(calificacion=calificacion) # Se modifica la calificacion por una de no accion url_calificacion = reverse('calificacion_formulario_update_or_create', kwargs={'pk_campana': self.campana.pk, 'pk_contacto': contacto_califica.pk}) post_data_calificacion = self._obtener_post_data_calificacion_cliente( contacto=contacto_califica) post_data_calificacion['opcion_calificacion'] = self.opcion_calificacion_no_accion.pk self.client.post(url_calificacion, post_data_calificacion, follow=True) self.assertIsNone( CalificacionCliente.objects.get(opcion_calificacion__campana=self.campana, contacto_id=contacto_califica.id).get_venta())
def setUp(self): super(APITest, self).setUp() self.factory = RequestFactory() self.supervisor_admin = self.crear_supervisor_profile( rol=User.ADMINISTRADOR) self.supervisor = self.crear_supervisor_profile(rol=User.SUPERVISOR) self.agente_profile = self.crear_agente_profile() self.campana_activa = CampanaFactory.create( estado=Campana.ESTADO_ACTIVA, type=Campana.TYPE_MANUAL, nombre='activa uno') self.campana_activa_2 = CampanaFactory.create( estado=Campana.ESTADO_ACTIVA, type=Campana.TYPE_PREVIEW, nombre='activa dos') self.campana_activa_supervisor = CampanaFactory.create( estado=Campana.ESTADO_ACTIVA, type=Campana.TYPE_ENTRANTE, nombre='activa supervisor uno') self.campana_activa_supervisor.supervisors.add(self.supervisor.user) self.campana_finalizada = CampanaFactory( estado=Campana.ESTADO_FINALIZADA) self.queue = QueueFactory.create(campana=self.campana_activa) self.queue1 = QueueFactory.create(campana=self.campana_activa_2) self.queue2 = QueueFactory.create( campana=self.campana_activa_supervisor) self.queue3 = QueueFactory.create(campana=self.campana_finalizada) QueueMemberFactory.create(member=self.agente_profile, queue_name=self.queue) self.sistema_externo = SistemaExternoFactory() self.opcion_calificacion = OpcionCalificacionFactory( campana=self.campana_activa) self.contacto = ContactoFactory( bd_contacto=self.campana_activa.bd_contacto) self.calificacion_cliente = CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion, agente=self.agente_profile, contacto=self.contacto) for user in User.objects.all(): Token.objects.create(user=user)
def test_api_modificar_calificacion_impide_calificar_mas_de_una_vez_contacto_campana(self): contacto_nuevo = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto) CalificacionClienteFactory( opcion_calificacion=self.opcion_calificacion, contacto=contacto_nuevo) token_agente = Token.objects.get(user=self.agente_profile.user).key client = APIClient() client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente) observaciones = 'calificacion externa' post_data = { 'id': self.calificacion_cliente.pk, 'idContact': contacto_nuevo.pk, 'idAgent': self.agente_profile.pk, 'idDispositionOption': self.opcion_calificacion.pk, 'comments': observaciones } url = reverse('api_disposition-detail', args=(self.calificacion_cliente.pk,)) response = client.put(url, post_data) self.assertEqual(response.status_code, 400) self.assertEqual(str(response.data['status']), 'ERROR')
def setUp(self): super(LimitarAgendasPersonalesTests, self).setUp() self.grupo1 = GrupoFactory(nombre='grupo1', limitar_agendas_personales=True, cantidad_agendas_personales=1) self.grupo2 = GrupoFactory(nombre='grupo2', limitar_agendas_personales=True, cantidad_agendas_personales=0) self.grupo3 = GrupoFactory(nombre='grupo3', limitar_agendas_personales=False, cantidad_agendas_personales=0) self.agente_1 = self.crear_agente_profile() self.agente_1.grupo = self.grupo1 self.agente_1.save() self.agente_2 = self.crear_agente_profile() self.agente_2.grupo = self.grupo2 self.agente_2.save() self.agente_3 = self.crear_agente_profile() self.agente_3.grupo = self.grupo3 self.agente_3.save() self.contacto = ContactoFactory.create() self.campana_preview = CampanaFactory.create(estado=Campana.ESTADO_ACTIVA, type=Campana.TYPE_PREVIEW) self.campana_dialer = CampanaFactory.create(estado=Campana.ESTADO_ACTIVA, type=Campana.TYPE_DIALER) self.nombre_calificacion_agenda = NombreCalificacion.objects.get( nombre=settings.CALIFICACION_REAGENDA) self.opcion_calificacion_agenda_campana_preview = OpcionCalificacionFactory.create( campana=self.campana_preview, nombre=self.nombre_calificacion_agenda.nombre, tipo=OpcionCalificacion.AGENDA) self.opcion_calificacion_agenda_campana_dialer = OpcionCalificacionFactory.create( campana=self.campana_dialer, nombre=self.nombre_calificacion_agenda.nombre, tipo=OpcionCalificacion.AGENDA)