def test_obtener_beautiful_url_con_parametros(self):
     self.sitio_externo.url = 'https://oml.com/{1}/{2}/{3}/{4}'
     ParametrosCrmFactory(campana=self.campana,
                          tipo=ParametrosCrm.DATO_CONTACTO,
                          nombre='{1}',
                          valor='telefono')
     ParametrosCrmFactory(campana=self.campana,
                          tipo=ParametrosCrm.DATO_CAMPANA,
                          nombre='{2}',
                          valor='id')
     ParametrosCrmFactory(campana=self.campana,
                          tipo=ParametrosCrm.DATO_LLAMADA,
                          nombre='{3}',
                          valor='call_id')
     ParametrosCrmFactory(campana=self.campana,
                          tipo=ParametrosCrm.CUSTOM,
                          nombre='{4}',
                          valor='valor_1')
     url = self.sitio_externo.get_url_interaccion(self.agente, self.campana,
                                                  self.contacto,
                                                  self.call_data)
     self.assertEqual(
         url, 'https://oml.com/' + self.contacto.telefono + '/' +
         str(self.campana.id) + '/' + self.call_data['call_id'] +
         '/valor_1')
     self.assertEqual(
         self.sitio_externo.get_parametros(self.agente, self.campana,
                                           self.contacto, self.call_data),
         {})
 def test_obtener_get_url_con_parametros_crm(self):
     self.sitio_externo.url = 'https://oml.com/'
     ParametrosCrmFactory(campana=self.campana, tipo=ParametrosCrm.DIALPLAN,
                          nombre='nombre_1', valor='Omlcrmnombre_1')
     ParametrosCrmFactory(campana=self.campana, tipo=ParametrosCrm.DIALPLAN,
                          nombre='nombre_2', valor='Omlcrmnombre_2')
     url = self.sitio_externo.get_url_interaccion(self.agente, self.campana, self.contacto,
                                                  self.call_data, True)
     self.assertIn("nombre_1=valor_crm_1", url)
     self.assertIn("nombre_2=valor_crm_2", url)
Example #3
0
 def test_obtener_parametros_custom(self):
     ParametrosCrmFactory(campana=self.campana, tipo=ParametrosCrm.CUSTOM,
                          nombre='nombre_1', valor='valor_1')
     ParametrosCrmFactory(campana=self.campana, tipo=ParametrosCrm.CUSTOM,
                          nombre='nombre_2', valor='valor_2')
     parametros = self.sitio_externo.get_parametros(self.agente, self.campana, self.contacto,
                                                    self.call_data)
     self.assertEqual(len(parametros), 2)
     self.assertIn('nombre_1', parametros)
     self.assertIn('nombre_2', parametros)
     self.assertEqual(parametros['nombre_1'], 'valor_1')
     self.assertEqual(parametros['nombre_2'], 'valor_2')
 def test_obtener_parametros_cmr(self):
     ParametrosCrmFactory(campana=self.campana, tipo=ParametrosCrm.DIALPLAN,
                          nombre='nombre_1', valor='Omlcrmnombre_1')
     ParametrosCrmFactory(campana=self.campana, tipo=ParametrosCrm.DATO_LLAMADA,
                          nombre='nombre_2', valor='Omlcrmnombre_2')
     parametros = self.sitio_externo.get_parametros(self.agente, self.campana, self.contacto,
                                                    self.call_data)
     self.assertEqual(len(parametros), 2)
     self.assertIn('nombre_1', parametros)
     self.assertIn('nombre_2', parametros)
     self.assertEqual(parametros['nombre_1'], 'valor_crm_1')
     self.assertEqual(parametros['nombre_2'], 'valor_crm_2')
 def test_obtener_parametros_llamada(self):
     nombres = [
         'call_id', 'agent_id', 'telefono', 'id_contacto', 'rec_filename',
         'call_wait_duration'
     ]
     for nombre in nombres:
         ParametrosCrmFactory(campana=self.campana,
                              tipo=ParametrosCrm.DATO_LLAMADA,
                              nombre=nombre,
                              valor=nombre)
     parametros = self.sitio_externo.get_parametros(self.agente,
                                                    self.campana,
                                                    self.contacto,
                                                    self.call_data)
     self.assertEqual(len(parametros), len(nombres))
     for nombre in nombres:
         self.assertIn(nombre, parametros)
     self.assertEqual(parametros['call_id'], self.call_data['call_id'])
     self.assertEqual(parametros['agent_id'], self.call_data['agent_id'])
     self.assertEqual(parametros['telefono'], self.call_data['telefono'])
     self.assertEqual(parametros['id_contacto'],
                      self.call_data['id_contacto'])
     self.assertEqual(parametros['rec_filename'],
                      self.call_data['rec_filename'])
     self.assertEqual(parametros['call_wait_duration'],
                      self.call_data['call_wait_duration'])
Example #6
0
 def test_obtener_parametros_contacto(self):
     for nombre in COLUMNAS_DB_DEFAULT:
         ParametrosCrmFactory(campana=self.campana, tipo=ParametrosCrm.DATO_CONTACTO,
                              nombre=nombre, valor=nombre)
     parametros = self.sitio_externo.get_parametros(self.agente, self.campana, self.contacto,
                                                    self.call_data)
     self.assertEqual(len(parametros), len(COLUMNAS_DB_DEFAULT))
     for nombre in COLUMNAS_DB_DEFAULT:
         self.assertIn(nombre, parametros)
Example #7
0
 def test_obtener_parametros_campana(self):
     nombres = ['id', 'nombre', 'tipo']
     for nombre in nombres:
         ParametrosCrmFactory(campana=self.campana, tipo=ParametrosCrm.DATO_CAMPANA,
                              nombre=nombre, valor=nombre)
     parametros = self.sitio_externo.get_parametros(self.agente, self.campana, self.contacto,
                                                    self.call_data)
     self.assertEqual(len(parametros), len(nombres))
     for nombre in nombres:
         self.assertIn(nombre, parametros)
     self.assertEqual(parametros['id'], str(self.campana.id))
     self.assertEqual(parametros['nombre'], self.campana.nombre)
     self.assertEqual(parametros['tipo'], self.campana.get_type_display())
Example #8
0
    def test_muestra_link_sitio_externo(self):
        self.campana.type = Campana.TYPE_PREVIEW
        self.campana.tipo_interaccion = Campana.SITIO_EXTERNO
        sitio_externo = SitioExternoFactory()
        self.campana.sitio_externo = sitio_externo
        self.campana.save()
        parametro1 = ParametrosCrmFactory(campana=self.campana)
        call_data = self.get_call_data()
        url = reverse('calificar_llamada', kwargs={'call_data_json': json.dumps(call_data)})

        response = self.client.get(url)
        self.assertContains(response, sitio_externo.url)
        self.assertContains(response, '"%s": "%s"' % (parametro1.nombre, parametro1.valor))
Example #9
0
    def test_hace_peticion_sitio_externo_en_servidor(self, request_get):
        self.campana.type = Campana.TYPE_PREVIEW
        self.campana.tipo_interaccion = Campana.SITIO_EXTERNO
        sitio_externo = SitioExternoFactory(disparador=SitioExterno.SERVER,
                                            metodo=SitioExterno.GET,
                                            objetivo=None, formato=None)
        self.campana.sitio_externo = sitio_externo
        self.campana.save()
        ParametrosCrmFactory(campana=self.campana)
        call_data = self.get_call_data()
        url = reverse('calificar_llamada', kwargs={'call_data_json': json.dumps(call_data)})

        self.client.get(url)
        parametros = sitio_externo.get_parametros(self.agente_profile,
                                                  self.campana,
                                                  self.contacto,
                                                  call_data)
        request_get.assert_called_with(sitio_externo.url, params=parametros)
Example #10
0
    def test_redirecciona_a_sitio_externo(self):
        self.campana.type = Campana.TYPE_PREVIEW
        self.campana.tipo_interaccion = Campana.SITIO_EXTERNO
        sitio_externo = SitioExternoFactory(disparador=SitioExterno.AUTOMATICO,
                                            metodo=SitioExterno.GET,
                                            objetivo=SitioExterno.EMBEBIDO)
        self.campana.sitio_externo = sitio_externo
        self.campana.save()
        parametro1 = ParametrosCrmFactory(campana=self.campana)

        call_data = self.get_call_data()
        url = reverse('calificar_llamada', kwargs={'call_data_json': json.dumps(call_data)})

        response = self.client.get(url, follow=False)
        self.assertEqual(response.status_code, 302)
        param_1 = '%s=%s' % (parametro1.nombre, parametro1.valor)
        equal_url = (response.url == '%s?%s' % (sitio_externo.url, param_1))
        self.assertTrue(equal_url)