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)
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'])
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)
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())
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))
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)
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)