def test_datos_reporte_grafico_detalle_llamadas_manuales_coinciden_estadisticas_sistema( self): campana_manual = CampanaFactory(type=Campana.TYPE_MANUAL, estado=Campana.ESTADO_ACTIVA) self.generador_log_llamadas.generar_log(campana_manual, True, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile) self.generador_log_llamadas.generar_log(campana_manual, True, 'COMPLETEOUTNUM', self.telefono2, agente=self.agente_profile) self.generador_log_llamadas.generar_log(campana_manual, True, 'FAIL', self.telefono3, agente=self.agente_profile) hoy_ahora = fecha_hora_local(timezone.now()) fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora) fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora) estadisticas_service = EstadisticasService(campana_manual, fecha_desde, fecha_hasta) estadisticas_service.calcular_estadisticas_totales() reporte = estadisticas_service.reporte_detalle_llamadas.reporte self.assertEqual(reporte['Discadas'], 3) self.assertEqual(reporte['Discadas atendidas'], 2) self.assertEqual(reporte['Discadas no atendidas'], 1)
def test_datos_reporte_grafico_llamadas_entrantes_promedio_tiempo_espera( self): campana_entrante = CampanaFactory(type=Campana.TYPE_ENTRANTE, estado=Campana.ESTADO_ACTIVA) hoy = fecha_hora_local(timezone.now()) self.generador_log_llamadas.generar_log(campana_entrante, False, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile, time=hoy, bridge_wait_time=4, callid=1) self.generador_log_llamadas.generar_log(campana_entrante, False, 'COMPLETEOUTNUM', self.telefono2, agente=self.agente_profile, time=hoy, bridge_wait_time=2, callid=2) hoy_ahora = fecha_hora_local(timezone.now()) fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora) fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora) estadisticas_service = EstadisticasService(campana_entrante, fecha_desde, fecha_hasta) estadisticas_service.calcular_estadisticas_totales() self.assertEqual( estadisticas_service.reporte_totales_llamadas. tiempo_promedio_espera, 3)
def test_datos_reporte_grafico_llamadas_entrantes_promedio_tiempo_abandono( self): campana_entrante = CampanaFactory(type=Campana.TYPE_ENTRANTE, estado=Campana.ESTADO_ACTIVA) hoy = fecha_hora_local(timezone.now()) self.generador_log_llamadas.generar_log(campana_entrante, False, 'ABANDON', self.telefono1, agente=self.agente_profile, time=hoy, bridge_wait_time=4) LlamadaLogFactory(tipo_campana=Campana.TYPE_ENTRANTE, tipo_llamada=LlamadaLog.LLAMADA_ENTRANTE, campana_id=campana_entrante.pk, event='ABANDONWEL', bridge_wait_time=5, time=hoy) hoy_ahora = fecha_hora_local(timezone.now()) fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora) fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora) estadisticas_service = EstadisticasService(campana_entrante, fecha_desde, fecha_hasta) estadisticas_service.calcular_estadisticas_totales() self.assertEqual( estadisticas_service.reporte_totales_llamadas. tiempo_promedio_abandono, 4.5)
def test_datos_reporte_grafico_llamadas_entrantes_realizadas_muestran_solo_dia_actual( self): campana_entrante = CampanaFactory(type=Campana.TYPE_ENTRANTE, estado=Campana.ESTADO_ACTIVA) hoy = fecha_hora_local(timezone.now()) ayer = hoy - timedelta(days=1) self.generador_log_llamadas.generar_log(campana_entrante, True, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile, time=ayer) self.generador_log_llamadas.generar_log(campana_entrante, True, 'COMPLETEOUTNUM', self.telefono2, agente=self.agente_profile, time=hoy) hoy_ahora = fecha_hora_local(timezone.now()) fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora) fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora) estadisticas_service = EstadisticasService(campana_entrante, fecha_desde, fecha_hasta) estadisticas_service.calcular_estadisticas_totales() self.assertEqual( estadisticas_service.reporte_totales_llamadas.llamadas_realizadas, 1)
def test_datos_reporte_grafico_total_llamadas_entrantes_coinciden_estadisticas_sistema(self): campana_entrante = CampanaFactory(type=Campana.TYPE_ENTRANTE, estado=Campana.ESTADO_ACTIVA) self.generador_log_llamadas.generar_log( campana_entrante, False, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_entrante, False, 'COMPLETEOUTNUM', self.telefono2, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_entrante, False, 'EXITWITHTIMEOUT', self.telefono3, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_entrante, False, 'ABANDON', self.telefono4, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_entrante, True, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_entrante, True, 'COMPLETEOUTNUM', self.telefono2, agente=self.agente_profile) hoy_ahora = fecha_hora_local(timezone.now()) fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora) fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora) estadisticas_service = EstadisticasService(campana_entrante, fecha_desde, fecha_hasta) estadisticas_service.calcular_estadisticas_totales() reporte = estadisticas_service.reporte_detalle_llamadas.reporte self.assertEqual(reporte['Recibidas'], 4) self.assertEqual(reporte['Atendidas'], 2) self.assertEqual(reporte['Expiradas'], 1) self.assertEqual(reporte['Abandonadas'], 1) self.assertEqual(reporte['Manuales'], 2) self.assertEqual(reporte['Manuales atendidas'], 2) self.assertEqual(reporte['Manuales no atendidas'], 0)
def test_datos_reporte_grafico_detalle_llamadas_dialer_coinciden_estadisticas_sistema( self, obtener_dato_campana_run): obtener_dato_campana_run.return_value = {'n_est_remaining_calls': 0} campana_dialer = CampanaFactory(type=Campana.TYPE_DIALER, estado=Campana.ESTADO_ACTIVA) self.generador_log_llamadas.generar_log( campana_dialer, False, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_dialer, False, 'COMPLETEOUTNUM', self.telefono2, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_dialer, False, 'ABANDON', self.telefono3, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_dialer, False, 'EXITWITHTIMEOUT', self.telefono4, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_dialer, False, 'CANCEL', self.telefono4, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_dialer, True, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_dialer, True, 'COMPLETEOUTNUM', self.telefono2, agente=self.agente_profile) self.generador_log_llamadas.generar_log( campana_dialer, True, 'NOANSWER', self.telefono2, agente=self.agente_profile) hoy_ahora = fecha_hora_local(timezone.now()) fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora) fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora) estadisticas_service = EstadisticasService(campana_dialer, fecha_desde, fecha_hasta) estadisticas_service.calcular_estadisticas_totales() reporte = estadisticas_service.reporte_detalle_llamadas.reporte self.assertEqual(reporte['Discadas'], 5) self.assertEqual(reporte['Conectadas al agente'], 2) self.assertEqual(reporte['Atendidas'], 4) self.assertEqual(reporte['Perdidas'], 2) self.assertEqual(reporte['Manuales'], 3) self.assertEqual(reporte['Manuales atendidas'], 2) self.assertEqual(reporte['Manuales no atendidas'], 1)
def test_datos_reporte_grafico_detalle_llamadas_preview_coinciden_estadisticas_sistema(self): hoy_ahora = fecha_hora_local(timezone.now()) fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora) fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora) estadisticas_service = EstadisticasService(self.campana_activa, fecha_desde, fecha_hasta) estadisticas_service.calcular_estadisticas_totales() reporte = estadisticas_service.reporte_detalle_llamadas.reporte # se usan los logs de llamadas del setUp pues la campaña usada es preview self.assertEqual(reporte['Discadas'], 2) self.assertEqual(reporte['Conectadas'], 2) self.assertEqual(reporte['No conectadas'], 0) self.assertEqual(reporte['Manuales'], 2) self.assertEqual(reporte['Manuales atendidas'], 1) self.assertEqual(reporte['Manuales no atendidas'], 1)
def test_calificaciones_agenda_se_adicionan_a_llamadas_pendientes(self): campana_manual = CampanaFactory(type=Campana.TYPE_MANUAL, estado=Campana.ESTADO_ACTIVA) opcion_calificacion_agenda = OpcionCalificacionFactory( nombre=settings.CALIFICACION_REAGENDA, campana=campana_manual, tipo=OpcionCalificacion.AGENDA) log = LlamadaLogFactory(campana_id=campana_manual.pk) CalificacionClienteFactory( callid=log.callid, opcion_calificacion=opcion_calificacion_agenda, agente=self.agente_profile) hoy_ahora = fecha_hora_local(timezone.now()) fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora) fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora) estadisticas_service = EstadisticasService(campana_manual, fecha_desde, fecha_hasta) estadisticas_service.calcular_estadisticas_totales() self.assertEqual(estadisticas_service.reporte_totales_llamadas.llamadas_pendientes, 1)