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 test_calificacion_cliente_creacion_redirecciona_a_otro_formulario_gestion( self, post): nuevo_formulario = FormularioFactory() campo_formulario = FieldFormularioFactory(formulario=nuevo_formulario, nombre_campo='otro_campo') nombre_opcion = NombreCalificacionFactory.create(nombre='otra opcion') opcion_calificacion = OpcionCalificacionFactory.create( campana=self.campana, nombre=nombre_opcion, tipo=OpcionCalificacion.GESTION, formulario=nuevo_formulario) url = reverse('calificacion_formulario_update_or_create', kwargs={ 'pk_campana': self.campana.pk, 'pk_contacto': self.contacto.pk }) post_data = self._obtener_post_data_calificacion_cliente() post_data['opcion_calificacion'] = opcion_calificacion.pk response = self.client.post(url, post_data, follow=True) self.assertTemplateUsed( response, 'formulario/respuesta_formulario_gestion_agente.html') self.assertTrue(campo_formulario.nombre_campo in response.context_data['form'].fields) self.assertFalse(self.campo_formulario.nombre_campo in response.context_data['form'].fields)
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 test_no_crear_campos_con_mismos_nombres(self): nombre_campo = 'test' field = FieldFormularioFactory(nombre_campo=nombre_campo) url = reverse('formulario_field', args=[field.formulario.pk]) post_data = {'formulario': field.formulario.pk, 'nombre_campo': nombre_campo, 'tipo': FieldFormulario.TIPO_FECHA, 'values_select': '', 'is_required': True} response = self.client.post(url, post_data, follow=True) self.assertContains(response, _('No se pudo llevar a cabo la creacion de campo.')) self.assertEqual(response.context_data['form'].errors['nombre_campo'], [_('No se puede crear un campo ya existente')])
def _crear_datos_entorno(self): self.admin = User.objects.filter(is_staff=True).first() # crear grupo grupo = GrupoFactory() # crear agente agente = AgenteProfileFactory(grupo=grupo, reported_by=self.admin) agente.user.username = self.agent_username agente.user.set_password(self.agent_password) agente.sip_extension = 1000 + agente.id agente.user.is_agente = True agente.user.save() agente.save() agente.user.groups.add(Group.objects.get(name='Agente')) asterisk_sip_service = ActivacionAgenteService() asterisk_sip_service.activar() # crear audio ArchivoDeAudioFactory() # crear pausa PausaFactory() # crear formulario (2 campos) form = FormularioFactory() FieldFormularioFactory.create_batch(2, formulario=form) # crear califs.(1 gestion y 1 normal) self.success = NombreCalificacionFactory(nombre='Success') self.angry = NombreCalificacionFactory(nombre='Hangs up angry') # crear BD (3 contactos) self.bd_contacto = BaseDatosContactoFactory() ContactoFactory.create_batch(3, bd_contacto=self.bd_contacto) campana_manual = self._crear_campana_manual() campana_entrante = self._crear_campana_entrante() activacion_queue_service = ActivacionQueueService() activacion_queue_service.activar() # crea un troncal y con este una ruta entrante hacia el pbx-emulator text_config = ("type=friend\n" "host=pbx-emulator\n" "defaultuser=01177660010\n" "secret=OMLtraining72\n" "qualify=yes\n" "insecure=invite\n" "context=from-pstn\n" "disallow=all\n" "allow=alaw\n") register_string = "01177660010:OMLtraining72@pbx-emulator" troncal_pbx_emulator = TroncalSIPFactory( text_config=text_config, register_string=register_string, canales_maximos=1000, caller_id='') sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk( ) sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator) ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt") PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.") OrdenTroncalFactory(ruta_saliente=ruta_saliente, orden=0, troncal=troncal_pbx_emulator) sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk( ) sincronizador_ruta_saliente.regenerar_asterisk(ruta_saliente) # crear ruta entrante self._crear_ruta_entrante(campana_entrante) self._asignar_agente_a_campana(agente, campana_manual) self._asignar_agente_a_campana(agente, campana_entrante)
def _crear_datos_entorno(self): admin = User.objects.filter(is_staff=True).first() # crear grupo grupo = GrupoFactory() # crear modulo modulo = ModuloFactory() # crear agente agente = AgenteProfileFactory(grupo=grupo, reported_by=admin) agente.modulos.add(modulo) agente.user.username = self.agent_username agente.user.set_password(self.agent_password) agente.sip_extension = 1000 + agente.id agente.user.is_agente = True agente.user.save() agente.save() asterisk_sip_service = ActivacionAgenteService() asterisk_sip_service.activar() # crear audio ArchivoDeAudioFactory() # crear pausa PausaFactory() # crear formulario (2 campos) form = FormularioFactory() FieldFormularioFactory.create_batch(2, formulario=form) # crear califs.(1 gestion y 1 normal) success = NombreCalificacionFactory(nombre='Success') angry = NombreCalificacionFactory(nombre='Hangs up angry') # crear BD (3 contactos) bd_contacto = BaseDatosContactoFactory() ContactoFactory.create_batch(3, bd_contacto=bd_contacto) # crear campaña manual campana_manual = CampanaFactory( nombre='test_manual_campaign', bd_contacto=bd_contacto, type=Campana.TYPE_MANUAL, reported_by=admin, es_manual=True, estado=Campana.ESTADO_ACTIVA ) # crear Queue para la campaña Queue.objects.create( campana=campana_manual, name=campana_manual.nombre, maxlen=5, wrapuptime=5, servicelevel=30, strategy='rrmemory', eventmemberstatus=True, eventwhencalled=True, ringinuse=True, setinterfacevar=True, weight=0, wait=120 ) # opciones de calificacion OpcionCalificacionFactory( nombre=success.nombre, campana=campana_manual, tipo=OpcionCalificacion.GESTION) OpcionCalificacionFactory( nombre=angry.nombre, campana=campana_manual, tipo=OpcionCalificacion.NO_ACCION) activacion_queue_service = ActivacionQueueService() activacion_queue_service.activar() # crea un troncal y con este una ruta entrante hacia el pbx-emulator text_config = ("type=friend\n" "host=pbx-emulator\n" "defaultuser=01177660010\n" "secret=OMLtraining72\n" "qualify=yes\n" "insecure=invite\n" "context=from-pstn\n" "disallow=all\n" "allow=alaw\n") register_string = "01177660010:OMLtraining72@pbx-emulator" troncal_pbx_emulator = TroncalSIPFactory( text_config=text_config, register_string=register_string, canales_maximos=1000, caller_id='') sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk() sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator) ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt") PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.") OrdenTroncalFactory(ruta_saliente=ruta_saliente, orden=0, troncal=troncal_pbx_emulator) sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk() sincronizador_ruta_saliente.regenerar_rutas_salientes(ruta_saliente)
def _crear_datos_entorno(self): self.admin = User.objects.filter(is_staff=True).first() # crear grupo grupo = GrupoFactory() # crear agente agente = AgenteProfileFactory(grupo=grupo, reported_by=self.admin) agente.user.username = self.agent_username agente.user.set_password(self.agent_password) agente.sip_extension = 1000 + agente.user.id agente.user.is_agente = True agente.user.save() agente.save() agente.user.groups.add(Group.objects.get(name='Agente')) asterisk_sip_service = ActivacionAgenteService() asterisk_sip_service.activar() # crear audio ArchivoDeAudioFactory() # crear pausa PausaFactory() # crear formulario (2 campos) form = FormularioFactory() FieldFormularioFactory.create_batch(2, formulario=form) # crear califs.(1 gestion y 1 normal) self.success = NombreCalificacionFactory(nombre='Success') self.angry = NombreCalificacionFactory(nombre='Hangs up angry') # crear BD (3 contactos) self.bd_contacto = BaseDatosContactoFactory() ContactoFactory.create_batch(3, bd_contacto=self.bd_contacto) campana_manual = self._crear_campana_manual() campana_entrante = self._crear_campana_entrante() activacion_queue_service = ActivacionQueueService() activacion_queue_service.activar() # crea un troncal y con este una ruta entrante hacia el pbx-emulator text_config = ("type=wizard\n" "transport=trunk-transport\n" "accepts_registrations=no\n" "accepts_auth=no\n" "sends_registrations=yes\n" "sends_auth=yes\n" "endpoint/rtp_symmetric=no\n" "endpoint/force_rport=no\n" "endpoint/rewrite_contact=yes\n" "endpoint/timers=yes\n" "aor/qualify_frequency=60\n" "endpoint/allow=alaw,ulaw\n" "endpoint/dtmf_mode=rfc4733\n" "endpoint/context=from-pstn\n" "remote_hosts=pbxemulator:5060\n" "outbound_auth/username=01177660010\n" "outbound_auth/password=OMLtraining72\n") troncal_pbx_emulator = TroncalSIPFactory(text_config=text_config, canales_maximos=1000, tecnologia=1, caller_id='') sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk( ) sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator) ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt") PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.") OrdenTroncalFactory(ruta_saliente=ruta_saliente, orden=0, troncal=troncal_pbx_emulator) sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk( ) sincronizador_ruta_saliente.regenerar_asterisk(ruta_saliente) # crear ruta entrante self._crear_ruta_entrante(campana_entrante) self._asignar_agente_a_campana(agente, campana_manual) self._asignar_agente_a_campana(agente, campana_entrante)