def _create_dict(self, family_member): nodo = DestinoEntrante.get_nodo_ruta_entrante(family_member) externalurl = family_member.url if family_member.url is not None else '' longitud_id_esperado = '' if family_member.longitud_id_esperado is not None: longitud_id_esperado = family_member.longitud_id_esperado dict_identificador_cliente = { 'NAME': family_member.nombre, 'TYPE': family_member.tipo_interaccion, 'EXTERNALURL': externalurl, 'AUDIO': convert_audio_asterisk_path_astdb( family_member.audio.audio_asterisk), 'LENGTH': longitud_id_esperado, 'TIMEOUT': family_member.timeout, 'RETRIES': family_member.intentos, } for opcion in nodo.destinos_siguientes.all(): dst = "{0},{1}".format(opcion.destino_siguiente.tipo, opcion.destino_siguiente.object_id) if opcion.valor == IdentificadorCliente.DESTINO_MATCH: dict_identificador_cliente.update({'TRUEDST': dst}) elif opcion.valor == IdentificadorCliente.DESTINO_NO_MATCH: dict_identificador_cliente.update({'FALSEDST': dst}) return dict_identificador_cliente
def test_identificador_cliente_interaccion_externa_tipo1_envia_datos_correctos_creacion_astdb( self): campana_entrante_1 = CampanaFactory(type=Campana.TYPE_ENTRANTE) campana_entrante_2 = CampanaFactory(type=Campana.TYPE_ENTRANTE) ident_cliente = IdentificadorClienteFactory( tipo_interaccion=IdentificadorCliente.INTERACCION_EXTERNA_1) dest_entrante_1 = DestinoEntrante.crear_nodo_ruta_entrante(campana_entrante_1) dest_entrante_2 = DestinoEntrante.crear_nodo_ruta_entrante(campana_entrante_2) dest_entrante_ident_client = DestinoEntrante.crear_nodo_ruta_entrante(ident_cliente) OpcionDestino.crear_opcion_destino( dest_entrante_ident_client, dest_entrante_1, IdentificadorCliente.DESTINO_MATCH) OpcionDestino.crear_opcion_destino( dest_entrante_ident_client, dest_entrante_2, IdentificadorCliente.DESTINO_NO_MATCH) sync_ident_cliente = SincronizadorDeConfiguracionIdentificadorClienteAsterisk() gen_family = sync_ident_cliente._obtener_generador_family() dict_astdb = gen_family._create_dict(ident_cliente) self.assertEqual(dict_astdb['NAME'], ident_cliente.nombre) self.assertEqual(dict_astdb['TYPE'], ident_cliente.tipo_interaccion) self.assertEqual(dict_astdb['EXTERNALURL'], ident_cliente.url) audio_path = convert_audio_asterisk_path_astdb(ident_cliente.audio.audio_asterisk) self.assertEqual(dict_astdb['AUDIO'], audio_path) self.assertEqual(dict_astdb['LENGTH'], ident_cliente.longitud_id_esperado) self.assertEqual(dict_astdb['TIMEOUT'], ident_cliente.timeout) self.assertEqual(dict_astdb['RETRIES'], ident_cliente.intentos) self.assertEqual(dict_astdb['TRUEDST'], "{0},{1}".format( dest_entrante_1.tipo, dest_entrante_1.object_id)) self.assertEqual(dict_astdb['FALSEDST'], "{0},{1}".format( dest_entrante_2.tipo, dest_entrante_2.object_id))
def _create_dict(self, ivr): destinos_siguientes = self._obtener_destinos_siguientes(ivr) ivr_audio = convert_audio_asterisk_path_astdb( ivr.audio_principal.audio_asterisk) timeout_audio = 'NONE' if ivr.time_out_audio: timeout_audio = convert_audio_asterisk_path_astdb( ivr.time_out_audio.audio_asterisk) invalid_audio = 'NONE' if ivr.invalid_audio: invalid_audio = convert_audio_asterisk_path_astdb( ivr.invalid_audio.audio_asterisk) dict_ivr = { 'NAME': ivr.nombre, 'AUDIO': ivr_audio, 'TIMEOUT': ivr.time_out, 'TORETRY': ivr.time_out_retries, 'TOAUDIO': timeout_audio, 'INVRETRY': ivr.invalid_retries, 'INVAUDIO': invalid_audio, 'OPTIONS': len(destinos_siguientes) - 2 } contador_orden = 0 for opcion in destinos_siguientes: # cambiar por contante de la clase ivr dst = "{0},{1}".format(opcion.destino_siguiente.tipo, opcion.destino_siguiente.object_id) if opcion.valor == IVR.VALOR_TIME_OUT: dict_ivr.update({'DEFAULTTODST': dst}) elif opcion.valor == IVR.VALOR_DESTINO_INVALIDO: dict_ivr.update({'DEFAULTINVDST': dst}) else: contador_orden += 1 clave_dst = "OPTIONDST-{0}".format(contador_orden) clave_dmtf = "OPTIONDTMF-{0}".format(contador_orden) dict_ivr.update({clave_dst: dst}) dict_ivr.update({clave_dmtf: opcion.valor}) return dict_ivr
def test_identificador_cliente_interaccion_externa_tipo2_envia_datos_correctos_creacion_astdb( self): ident_cliente = IdentificadorClienteFactory( tipo_interaccion=IdentificadorCliente.INTERACCION_EXTERNA_2) DestinoEntrante.crear_nodo_ruta_entrante(ident_cliente) sync_ident_cliente = SincronizadorDeConfiguracionIdentificadorClienteAsterisk() gen_family = sync_ident_cliente._obtener_generador_family() dict_astdb = gen_family._create_dict(ident_cliente) self.assertEqual(dict_astdb['NAME'], ident_cliente.nombre) self.assertEqual(dict_astdb['TYPE'], ident_cliente.tipo_interaccion) self.assertEqual(dict_astdb['EXTERNALURL'], ident_cliente.url) audio_path = convert_audio_asterisk_path_astdb(ident_cliente.audio.audio_asterisk) self.assertEqual(dict_astdb['AUDIO'], audio_path) self.assertEqual(dict_astdb['LENGTH'], ident_cliente.longitud_id_esperado) self.assertEqual(dict_astdb['TIMEOUT'], ident_cliente.timeout) self.assertFalse(dict_astdb.get('TRUEDST', False)) self.assertFalse(dict_astdb.get('FALSEDST', False))