コード例 #1
0
    def test_devuelve_correctamente_values_campana_dialer_asterisk(self):
        """
        este test testea los values del diccionario de la family de la campana
        dialer
        """
        servicio = CampanaFamily()
        dict_campana = servicio._create_dict(self.campana_dialer)

        nombre_campana = self.campana_dialer.get_queue_id_name()
        self.assertEqual(dict_campana['QNAME'], nombre_campana)
        self.assertEqual(dict_campana['TYPE'], self.campana_dialer.type)
        self.assertEqual(dict_campana['REC'],
                         str(self.campana_dialer.queue_campana.auto_grabacion))
        self.assertEqual(
            dict_campana['AMD'],
            str(self.campana_dialer.queue_campana.detectar_contestadores))
        self.assertEqual(dict_campana['CALLAGENTACTION'],
                         self.campana_dialer.tipo_interaccion)
        self.assertEqual(dict_campana['RINGTIME'], "")
        self.assertEqual(dict_campana['QUEUETIME'],
                         self.campana_dialer.queue_campana.wait)
        self.assertEqual(dict_campana['MAXQCALLS'],
                         self.campana_dialer.queue_campana.maxlen)
        self.assertEqual(dict_campana['SL'],
                         self.campana_dialer.queue_campana.servicelevel)
        audio = "{0}{1}".format(
            settings.OML_AUDIO_FOLDER,
            self.campana_dialer.queue_campana.audio_para_contestadores.
            get_filename_audio_asterisk())
        self.assertEqual(dict_campana['AMDPLAY'], audio)
        self.assertEqual(dict_campana['TC'], "")
        self.assertEqual(dict_campana['IDJSON'], "")
        self.assertEqual(dict_campana['PERMITOCCULT'], "")
        self.assertEqual(dict_campana['MAXCALLS'], "")
        self.assertEqual(dict_campana['FAILOVER'], str(0))
コード例 #2
0
    def test_devuelve_diccionario_con_datos_correctos_preview(self):
        dict = {
            'QNAME': self.campana_preview.get_queue_id_name(),
            'TYPE': self.campana_preview.type,
            'REC': str(self.campana_preview.queue_campana.auto_grabacion),
            'AMD':
            str(self.campana_preview.queue_campana.detectar_contestadores),
            'CALLAGENTACTION': self.campana_preview.tipo_interaccion,
            'RINGTIME': "",
            'QUEUETIME': self.campana_preview.queue_campana.wait,
            'MAXQCALLS': self.campana_preview.queue_campana.maxlen,
            'SL': self.campana_preview.queue_campana.servicelevel,
            'OUTR': "",
            'OUTCID': "",
            'IDEXTERNALURL': "",
            'FAILOVER': "0",
            'TC':
            "",  # a partir de esta variable no se usan las siguientes variables:
            'IDJSON': "",
            'PERMITOCCULT': "",
            'MAXCALLS': "",
            'VIDEOCALL': 'False',
        }
        family = CampanaFamily()

        self.assertEqual(dict, family._create_dict(self.campana_preview))
コード例 #3
0
class ActivacionQueueService(object):
    """ Sincronizador de configuracion de Campaña / Queue """
    def __init__(self):
        self.queues_config_creator = QueuesCreator()
        self.reload_asterisk_config = AsteriskConfigReloader()
        self.asterisk_database = CampanaFamily()

    def _generar_y_recargar_configuracion_asterisk(self):
        proceso_ok = True
        mensaje_error = ""

        try:
            self.queues_config_creator.create_dialplan()
        except Exception:
            logger.exception(
                _("ActivacionQueueService: error al "
                  "intentar queues_config_creator()"))

            proceso_ok = False
            mensaje_error += (_("Hubo un inconveniente al crear el archivo de "
                                "configuracion del queues de Asterisk. "))

        if not proceso_ok:
            raise (RestablecerDialplanError(mensaje_error))
        else:
            self.reload_asterisk_config.reload_asterisk()
            self.asterisk_database.regenerar_families()

    def activar(self):
        self._generar_y_recargar_configuracion_asterisk()
コード例 #4
0
    def test_falla_key_dict_campana_asterisk(self):
        """
        este test testea el diccionario de la family de la campana y
         no encuentra key
        """
        servicio = CampanaFamily()
        dict_campana = servicio._create_dict(self.campana_entrante)

        self.assertNotIn('WAITTIME', dict_campana.keys())

        self.assertNotIn('DELAY', dict_campana.keys())
コード例 #5
0
 def test_values_de_configuraciones_de_agentes_no_seteadas_dialer(self):
     ConfiguracionDeAgentesDeCampanaFactory(campana=self.campana_dialer,
                                            set_auto_attend_inbound=False,
                                            set_auto_attend_dialer=False,
                                            set_auto_unpause=False,
                                            set_obligar_calificacion=False)
     servicio = CampanaFamily()
     dict_campana = servicio._create_dict(self.campana_dialer)
     self.assertNotIn('AUTO_ATTEND_INBOUND', dict_campana)
     self.assertNotIn('AUTO_ATTEND_DIALER', dict_campana)
     self.assertNotIn('FORCE_DISPOSITION', dict_campana)
     self.assertNotIn('AUTO_UNPAUSE', dict_campana)
コード例 #6
0
    def test_devuelve_correctamente_dict_campana_asterisk(self):
        """
        este test testea el diccionario de la family de la campana
        """
        servicio = CampanaFamily()
        dict_campana = servicio._create_dict(self.campana_entrante)

        keys_asterisk = ['QNAME', 'TYPE', 'REC', 'AMD', 'CALLAGENTACTION',
                         'RINGTIME', 'QUEUETIME', 'MAXQCALLS', 'SL', 'TC',
                         'IDJSON', 'PERMITOCCULT', 'MAXCALLS', 'FAILOVER']
        for key in keys_asterisk:
            self.assertIn(key, dict_campana.keys())
コード例 #7
0
 def form_valid(self, form):
     configuracion = form.save(commit=False)
     configuracion.campana = self.campana
     configuracion.save()
     url_por_tipo = {
         Campana.TYPE_MANUAL: 'campana_manual_list',
         Campana.TYPE_DIALER: 'campana_dialer_list',
         Campana.TYPE_ENTRANTE: 'campana_list',
         Campana.TYPE_PREVIEW: 'campana_preview_list'
     }
     campana_service = CampanaFamily()
     campana_service.regenerar_family(self.campana)
     return redirect(url_por_tipo[self.campana.type])
コード例 #8
0
 def test_devuelve_correctamente_value_MOH_campana_entrante_asterisk(self):
     playlist = PlaylistFactory()
     self.campana_entrante.queue_campana.musiconhold = playlist
     servicio = CampanaFamily()
     dict_campana = servicio._create_dict(self.campana_entrante)
     self.assertEqual(dict_campana['MOH'], playlist.nombre)
コード例 #9
0
 def __init__(self):
     self.queues_config_creator = QueuesCreator()
     self.reload_asterisk_config = AsteriskConfigReloader()
     self.asterisk_database = CampanaFamily()