Ejemplo n.º 1
0
 def test_crear_blacklist(self):
     try:
         # Crear nueva blacklist
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         blacklist = 'blacklist' + uuid.uuid4().hex[:5]
         csv_path = "/home/{0}/ominicontacto/test/planilla-ejemplo-0.csv".format(
             USER)
         crear_blacklist(self.browser, csv_path, blacklist)
         self.assertTrue(
             self.browser.find_elements(
                 By.XPATH,
                 '//td[contains(text(), \'{0}\')]'.format(blacklist)))
         print('--Se pudo crear un Blacklist.--')
     except Exception as e:
         print('--ERROR: No se pudo crear un Blacklist.--\n{0}'.format(e))
         raise e
     # Verificacion que solo muestra la ultima Blacklist subida
     try:
         nueva_blacklist = 'blacklist' + uuid.uuid4().hex[:5]
         csv_nueva = "/home/{0}/ominicontacto/test/planilla-ejemplo-0.csv".format(
             USER)
         crear_blacklist(self.browser, csv_nueva, nueva_blacklist)
         self.assertFalse(
             self.browser.find_elements(
                 By.XPATH,
                 '//td[contains(text(), \'{0}\')]'.format(blacklist)))
         self.assertTrue(
             self.browser.find_elements(
                 By.XPATH,
                 '//td[contains(text(), \'{0}\')]'.format(nueva_blacklist)))
         print('--Se verifico que solo muestra la ultima Blacklist.--')
     except Exception as e:
         print('--ERROR: No se pudo verificar que solo se'
               'muestra la ultima Blacklist.--\n{0}'.format(e))
         raise e
Ejemplo n.º 2
0
 def test_crear_eliminar_grupo_sin_Autounpause(self):
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         group_name = 'grupo' + uuid.uuid4().hex[:5]
         crear_grupo(self.browser, group_name)
         self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(group_name))
         print('--Se pudo crear un grupo sin autounpause.--')
     except Exception as e:
         print('--ERROR: No se pudo crear un grupo sin autounpause.--\n{0}'.format(e))
         raise e
     # Eliminar grupo
     try:
         group_list = '//a[contains(@href,"/grupo/list/")]'
         get_href(self.browser, group_list)
         link_delete = "//tr[@id=\'{0}\']/td/div//a[contains(@href,'/grupo/delete')]".format(
             group_name)
         get_href(self.browser, link_delete)
         self.browser.find_element_by_xpath((
             "//button[@type='submit']")).click()
         sleep(1)
         self.assertFalse(self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(
             group_name)))
         print('--Se pudo eliminar un grupo.--')
     except Exception as e:
         print('--ERROR: No se pudo eliminar un grupo.--\n{0}'.format(e))
         raise e
Ejemplo n.º 3
0
 def test_delete_calificaciones(self):
     # Eliminar la calificacion: "No se encuentra".
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         calificacion = 'No se encuentra'
         lista_calificaciones = [calificacion]
         for items in lista_calificaciones:
             crear_calificacion(self.browser, items)
             self.assertTrue(self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'
                             .format(items)))
         self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
         link_delete = self.browser.find_element_by_xpath(
             '//tr[@id = \'{0}\']//a[contains(@href, "/delete/")]'
             .format(calificacion))
         href_delete = link_delete.get_attribute('href')
         self.browser.get(href_delete)
         self.browser.find_element_by_xpath("//button[@type='submit']").click()
         sleep(1)
         self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
         self.assertFalse(self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(
             calificacion)))
         print('--Se pudo eliminar con exito la calificacion "No se encuentra".--')
     except Exception as e:
         print('--ERROR: No se pudo eliminar una calificacion.-- \n{0}' .format(e))
         raise e
Ejemplo n.º 4
0
 def test_bloqueo_y_desbloqueo_de_un_usuario(self):
     try:
         clave_erronea = 'test'
         # Intento loguearme 12 veces para bloquear la cuenta del usuario
         intentos = LOGIN_FAILURE_LIMIT + 2
         for i in range(intentos):
             login(self.browser, AGENTE_USERNAME, clave_erronea)
         texto_error = self.browser.find_element_by_xpath('//div/p').text
         self.assertEqual(texto_error[0:24], 'Haz tratado de loguearte')
         print('--Se pudo bloquear un usuario.--')
     except Exception as e:
         print('--ERROR: No se pudo bloquear un usuario.--\n{0}'.format(e))
         raise e
     try:
         # Vamos al Admin de django para desbloquear este usuario
         self.browser.get(
             'https://{0}/admin'.format(TESTS_INTEGRACION_HOSTNAME))
         self.browser.find_element_by_name('username').send_keys(
             ADMIN_USERNAME)
         # Prueba con la password reseteada
         try:
             self.browser.find_element_by_name('password').send_keys(
                 ADMIN_PASSWORD_RESET)
             self.browser.find_element_by_xpath(
                 '//div/input[@type="submit"]').click()
             sleep(2)
         except Exception:
             pass
         # Prueba con la password por defecto del admin
         try:
             self.browser.find_element_by_name('password').send_keys(
                 ADMIN_PASSWORD)
             self.browser.find_element_by_xpath(
                 '//div/input[@type="submit"]').click()
             sleep(2)
         except Exception:
             pass
         defender = '//a[contains(@href, "/admin/defender/")]'
         get_href(self.browser, defender)
         bloqued_user = '******'
         get_href(self.browser, bloqued_user)
         self.browser.find_element_by_xpath(
             '//form[@action="/admin/defender/blocks/username/{0}/unblock"]/'
             'input[@type="submit"]'.format(AGENTE_USERNAME)).click()
         sleep(2)
         # Deslogueo como admin
         self.browser.get('https://{0}/'.format(TESTS_INTEGRACION_HOSTNAME))
         deslogueo = '//a[contains(@href, "/accounts/logout/")]'
         get_href(self.browser, deslogueo)
         # Compruebo que el usuario esta desbloqueado
         login(self.browser, AGENTE_USERNAME, AGENTE_PASSWORD)
         self.assertTrue(
             self.browser.find_element_by_xpath(
                 '//div/a[contains(@href, "/agente/logout/")]'))
         print('--Se pudo desbloquear con exito un usuario.--')
     except Exception as e:
         print(
             '--ERROR: No se pudo desbloquear con exito un usuario.--\n{0}'.
             format(e))
         raise e
Ejemplo n.º 5
0
 def test_agente_puede_realizar_llamada_saliente_campana_sin_identificar_contacto(
         self):
     # asume al menos una campana asignada al agente
     try:
         numero_externo = '351111111'
         login(self.browser, AGENTE_USERNAME, AGENTE_PASSWORD)
         self.browser.find_element_by_id('numberToCall').send_keys(
             numero_externo)
         self.browser.find_element_by_id('call').click()
         sleep(1)
         self.browser.find_element_by_id('SelectCamp').click()
         webdriver.ActionChains(self.browser).send_keys(
             Keys.ESCAPE).perform()
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         self.browser.switch_to.frame(
             self.browser.find_element_by_tag_name('iframe'))
         sleep(1)
         self.browser.find_element_by_id('id_btn_no_identificar').click()
         sleep(1)
         self.browser.switch_to.default_content()
         self.assertEqual(
             self.browser.find_element_by_id('dial_status').text,
             'Connected to {0}'.format(numero_externo))
         print(
             '--Se pudo realizar una llamada saliente sin identificar contacto con exito.--'
         )
     except Exception as e:
         print('--ERROR: No se pudo realizar una llamada saliente '
               'sin identificar contacto.--\n{0}'.format(e))
         raise e
Ejemplo n.º 6
0
 def test_crear_elimina_lista_rapida(self):
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         csv_path = "/home/{0}/ominicontacto/ominicontacto_app/static/ominicontacto"\
                    "/ejemplo_lista_rapida.csv".format(USER)
         Lista_rapida = 'listaRapida' + uuid.uuid4().hex[:5]
         crear_lista_rapida(self.browser, csv_path, Lista_rapida)
         self.browser.find_element_by_xpath(
             '//label/input[@value = "Telefono"]').click()
         self.browser.find_element(By.CSS_SELECTOR, ".btn-success").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//td[contains(text(), \'{0}\')]'.format(Lista_rapida)))
         print('--Se pudo crear una lista rapida. --')
     except Exception as e:
         print('--ERROR: No se pudo crear una Lista Rapida. --\n{0}'.format(
             e))
         raise e
     # eliminar lista rapida
     try:
         eliminar_lista = '//tr[@id=\'{0}\']//td//a[contains(@href, "/eliminar/")]'.format(
             Lista_rapida)
         get_href(self.browser, eliminar_lista)
         self.browser.find_element(By.CSS_SELECTOR, ".btn-danger").click()
         sleep(1)
         self.assertFalse(
             self.browser.find_elements_by_xpath(
                 '//td[contains(text(), \'{0}\')]'.format(Lista_rapida)))
         print('--Se pudo eliminar la lista rapida.--')
     except Exception as e:
         print('--ERROR: No se pudo eliminar una lista rapida. --\n{0}'.
               format(e))
         raise e
 def setUpClass(cls):
     # super(IntegrationTests, cls).setUpClass()
     cls.setUp()
     login(cls.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
     group_name = 'group' + uuid.uuid4().hex[:5]
     crear_grupo(cls.browser, group_name)
     tipo_usuario = 'Agente'
     crear_user(cls.browser, AGENTE_USERNAME, AGENTE_PASSWORD, tipo_usuario)
     cls.tearDown()
 def test_sitio_externo_automatico_post(self):
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         url = 'www.test' + uuid.uuid4().hex[:5] + '.com'
         # Metodo Post
         formato = ['multipart', 'urlencoded', 'text', 'json']
         for items in formato:
             sitio_post = 'sitio' + uuid.uuid4().hex[:5]
             sitio_externo(self.browser, sitio_post, url)
             self.browser.find_elements_by_xpath(
                 '//select[@id=\'id_disparador\']/option')[1].click()
             self.browser.find_elements_by_xpath(
                 '//select[@id=\'id_metodo\']/option')[1].click()
             formato_sitio(self.browser, items)
             self.browser.execute_script(
                 'window.scrollTo(0, document.body.scrollHeight);')
             self.assertTrue(
                 self.browser.find_element_by_xpath(
                     '//tr[@id=\'{0}\']'.format(sitio_post)))
         print(
             '--Se pudo crear un Sitio externo para el disparador Automatico, metodo POST--'
         )
     except Exception as e:
         print(
             '--ERROR: No se pudo crear un Sitio '
             'Externo con disparador automatico, metodo POST--\n{0}'.format(
                 e))
         raise e
     try:
         # Ocultar y mostrar Sitio Externo
         ocultar_sitio = '//tr[@id=\'{0}\']//a[contains(@href, "/ocultar/")]'.format(
             sitio_post)
         get_href(self.browser, ocultar_sitio)
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         self.assertFalse(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(sitio_post)))
         self.browser.execute_script('window.scrollTo(0, 0);')
         self.browser.find_element(By.LINK_TEXT, "Show Hidden").click()
         sleep(1)
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         desocultar = '//tr[@id=\'{0}\']//td//a[contains(@href, "/desocultar/")]'.format(
             sitio_post)
         get_href(self.browser, desocultar)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(sitio_post)))
         print('--Se pudo ocultar y mostrar un Sitio externo.--')
     except Exception as e:
         print(
             '--ERROR: No se pudo ocultar y mostrar un Sitio externo.--\n{0}'
             .format(e))
         raise e
Ejemplo n.º 9
0
 def test_acceso_web_agente_acceso_exitoso(self):
     try:
         login(self.browser, AGENTE_USERNAME, AGENTE_PASSWORD)
         self.assertTrue(
             self.browser.find_element_by_xpath(
                 '//a[contains(@href, "/agente/logout/")]'))
         print('--Acceso web agente: Acceso exitoso.--')
     except Exception as e:
         print(
             '--ERROR: Acceso web agente: Acceso NO exitoso.--\n{0}'.format(
                 e))
         raise e
Ejemplo n.º 10
0
 def test_agente_se_registra_correctamente(self):
     try:
         login(self.browser, AGENTE_USERNAME, AGENTE_PASSWORD)
         self.assertEqual(
             self.browser.find_element_by_id('dial_status').text,
             'Agent connected to asterisk')
         print('--Se pudo registrar correctamente un agente.--')
     except Exception as e:
         print(
             '--ERROR: No se pudo registrar correctamente un agente.--\n{0}'
             .format(e))
         raise e
Ejemplo n.º 11
0
    def setUpClass(cls):
        # super(IntegrationTests, cls).setUpClass()
        cls.setUp()

        login(cls.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
        group_name = 'group' + uuid.uuid4().hex[:5]
        crear_grupo(cls.browser, group_name)
        tipo_usuario = 'Agente'
        crear_user(cls.browser, AGENTE_USERNAME, AGENTE_PASSWORD, tipo_usuario)
        if BROWSER_REAL == 'True':
            asignar_agente_campana_manual(cls.browser, AGENTE_USERNAME)
        cls.tearDown()
Ejemplo n.º 12
0
 def test_acceso_web_agente_acceso_denegado(self):
     try:
         clave_erronea = "test"
         login(self.browser, AGENTE_USERNAME, clave_erronea)
         self.assertEqual(
             self.browser.find_element_by_xpath(
                 '//div[@class="alert alert-danger"]/p').text,
             'Invalid Username/Password, please try again')
         print('--Acceso web agente: Acceso denegado.--')
     except Exception as e:
         print('--ERROR: Acceso web agente: Acceso NO denegado.--\n{0}'.
               format(e))
         raise e
 def test_sistema_externo(self):
     # Crear Sistema Externo
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         nuevo_sistema = '//a[contains(@href, "/sistema_externo/nuevo/")]'
         get_href(self.browser, nuevo_sistema)
         sistema_externo = 'sistema' + uuid.uuid4().hex[:5]
         id_externo = 'id' + uuid.uuid4().hex[:5]
         self.browser.find_element_by_id('id_nombre').send_keys(sistema_externo)
         self.browser.find_elements_by_xpath(
             '//select[@id=\'id_agente_en_sistema-0-agente\']/option')[1].click()
         self.browser.find_element_by_id(
             'id_agente_en_sistema-0-id_externo_agente').send_keys(id_externo)
         self.browser.find_element_by_xpath("//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(self.browser.find_elements_by_xpath(
                         '//tr[@id=\'{0}\']'.format(sistema_externo)))
         print('--Se pudo crear un Sistema Externo.--')
     except Exception as e:
         print('--ERROR: No se pudo crear un Sistema Externo.-- \n{0}'. format(e))
         raise e
     # Modificar Sistema Externo
     try:
         group_name = 'group' + uuid.uuid4().hex[:5]
         crear_grupo(self.browser, group_name)
         tipo_usuario = 'Agente'
         agente = 'agente' + uuid.uuid4().hex[:5]
         crear_user(self.browser, agente, AGENTE_PASSWORD, tipo_usuario)
         lista_sistema = '//li/a[contains(@href, "/sistema_externo/list/")]'
         get_href(self.browser, lista_sistema)
         update_sistema = '//tr[@id=\'{0}\']//a[contains(@href, "/update/")]'.format(
             sistema_externo)
         get_href(self.browser, update_sistema)
         nuevo_id = 'id' + uuid.uuid4().hex[:5]
         self.browser.find_elements_by_xpath(
             '//select[@id=\'id_agente_en_sistema-1-agente\']/option')[2].click()
         self.browser.find_element_by_id(
             'id_agente_en_sistema-1-id_externo_agente').send_keys(nuevo_id)
         self.browser.find_element_by_xpath("//button[@type='submit']").click()
         sleep(1)
         get_href(self.browser, update_sistema)
         self.assertTrue(self.browser.find_elements_by_xpath(
             '//input[@value=\'{0}\']'.format(nuevo_id)))
         print('--Se pudo modificar un Sistema Externo.--')
     except Exception as e:
         print('--ERROR: No se pudo modificar el Sistema Externo--\n{0}'.format(e))
         raise e
Ejemplo n.º 14
0
 def test_no_permite_crear_lista_rapida_sin_formato_adecuado(self):
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         lista_erronea = 'lista_error'
         csv_path = "/home/{0}/ominicontacto/test/planilla-ejemplo-0.csv".format(
             USER)
         crear_lista_rapida(self.browser, csv_path, lista_erronea)
         texto_error = self.browser.find_element_by_xpath('//div/p').text
         error = 'Rows does not have 2 columns'
         self.assertEqual(texto_error, error)
         print(
             '--No se creo una lista rapida que no tenga las columnas Nombre y Telefono --'
         )
     except Exception as e:
         print('--ERROR: Se pudo crear una lista rapida erronea. --\n{0}'.
               format(e))
         raise e
Ejemplo n.º 15
0
 def test_modificar_eliminar_agente(self):
     # modificar grupo del agente.
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         agente_username = '******' + uuid.uuid4().hex[:5]
         agente_password = AGENTE_PASSWORD
         tipo_usuario = 'Agente'
         crear_user(self.browser, agente_username, agente_password, tipo_usuario)
         group_name = 'grupo' + uuid.uuid4().hex[:5]
         crear_grupo(self.browser, group_name)
         user_list = '//a[contains(@href,"/user/list/1/")]'
         get_href(self.browser, user_list)
         link_update = '//tr[@id=\'{0}\']/td/a[@name="edit_agent_profile"]'.format(
             agente_username)
         get_href(self.browser, link_update)
         self.browser.find_element_by_xpath("//select[@id='id_grupo']/option[text()=\'{0}\']"
                                            .format(group_name)).click()
         sleep(1)
         self.browser.find_element_by_xpath((
             "//button[@type='submit' and @id='id_registrar']")).click()
         sleep(1)
         get_href(self.browser, user_list)
         get_href(self.browser, link_update)
         self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
         self.assertTrue(self.browser.find_element_by_xpath(
             "//select[@id=\'id_grupo\']/option[text()=\'{0}\']".format(group_name)))
         print('--Se pudo modificar el grupo de un agente.--')
     except Exception as e:
         print('--ERROR: No se pudo modificar el grupo de un agente.--\n{0}'.format(e))
         raise e
     # Eliminar agente
     try:
         get_href(self.browser, user_list)
         link_delete = '//tr[@id=\'{0}\']/td/div//a[@name="delete_user"]'.format(agente_username)
         get_href(self.browser, link_delete)
         self.browser.find_element_by_xpath((
             "//button[@type='submit']")).click()
         sleep(1)
         self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
         self.assertFalse(self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(
             agente_username)))
         print('--Se pudo eliminar un agente.--')
     except Exception as e:
         print('--ERROR: No se pudo eliminar un agente.--\n{0}'.format(e))
         raise e
 def test_crear_update_sitio_externo_automatico_get(self):
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         sitio_get = 'sitio' + uuid.uuid4().hex[:5]
         url = 'www.test' + uuid.uuid4().hex[:5] + '.com'
         # Metodo Get
         sitio_externo(self.browser, sitio_get, url)
         self.browser.find_elements_by_xpath(
             '//select[@id=\'id_disparador\']/option')[1].click()
         self.browser.find_elements_by_xpath(
             '//select[@id=\'id_metodo\']/option')[0].click()
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(sitio_get)))
         print(
             '--Se pudo crear un Sitio externo para el disparador Automatico, metodo GET.--'
         )
     except Exception as e:
         print('--ERROR: No se pudo crear Sitio Externo con disparador '
               'Automatico, metodo GET.--\n{0}'.format(e))
         raise e
     try:
         # Modificar a Disparador Servidor
         update_servidor = '//tr[@id=\'{0}\']//a[contains(@href, "/update/")]'.format(
             sitio_get)
         get_href(self.browser, update_servidor)
         self.browser.find_elements_by_xpath(
             '//select[@id=\'id_disparador\']/option')[2].click()
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']//td[@id = "Server"]'.format(sitio_get)))
         print(
             '--Se pudo modificar el sitio Externo a disparador servidor.--'
         )
     except Exception as e:
         print(
             '--ERROR: No se pudo modificar el sitio externo a disparador '
             'Servidor.--\n{0}'.format(e))
         raise e
 def test_crear_delete_sitio_externo_agente_get(self):
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         sitio_get = 'sitio' + uuid.uuid4().hex[:5]
         url = 'www.test' + uuid.uuid4().hex[:5] + '.com'
         # Metodo Get
         sitio_externo(self.browser, sitio_get, url)
         self.browser.find_elements_by_xpath(
             '//select[@id=\'id_disparador\']/option')[0].click()
         self.browser.find_elements_by_xpath(
             '//select[@id=\'id_metodo\']/option')[0].click()
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(sitio_get)))
         print(
             '--Se pudo crear un Sitio externo para el disparador agente, metodo GET.--'
         )
     except Exception as e:
         print(
             '--ERROR: No se pudo crear Sitio Externo con disparador Agente, '
             'metodo GET.--\n{0}'.format(e))
         raise e
     try:
         # Eliminar Sitio Externo
         delete_sitio = '//tr[@id=\'{0}\']//a[contains(@href, "/delete/")]'.format(
             sitio_get)
         get_href(self.browser, delete_sitio)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertFalse(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(sitio_get)))
         print(
             '--Se puede eliminar un Sitio Externo con disparador agente, metodo GET.--'
         )
     except Exception as e:
         print(
             '--ERROR: No se pudo eliminar un Sitio '
             'Externo con disparador agente, metodo GET.--\n{0}'.format(e))
         raise e
 def test_crear_update_sitio_externo_agente_post(self):
     try:
         # Metodo Post
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         url = 'www.test' + uuid.uuid4().hex[:5] + '.com'
         formato = ['multipart', 'urlencoded', 'text', 'json']
         for items in formato:
             sitio_post = 'sitio' + uuid.uuid4().hex[:5]
             sitio_externo(self.browser, sitio_post, url)
             self.browser.find_elements_by_xpath(
                 '//select[@id=\'id_disparador\']/option')[0].click()
             self.browser.find_elements_by_xpath(
                 '//select[@id=\'id_metodo\']/option')[1].click()
             formato_sitio(self.browser, items)
             self.browser.execute_script(
                 'window.scrollTo(0, document.body.scrollHeight);')
             self.assertTrue(
                 self.browser.find_element_by_xpath(
                     '//tr[@id=\'{0}\']'.format(sitio_post)))
             # Modificar a Disparador Servidor
             update_servidor = '//tr[@id=\'{0}\']//a[contains(@href, "/update/")]'.format(
                 sitio_post)
             get_href(self.browser, update_servidor)
             self.browser.find_elements_by_xpath(
                 '//select[@id=\'id_disparador\']/option')[2].click()
             self.browser.find_element_by_xpath(
                 "//button[@type='submit']").click()
             sleep(1)
             self.assertTrue(
                 self.browser.find_elements_by_xpath(
                     '//tr[@id=\'{0}\']//td[@id = "Server"]'.format(
                         sitio_post)))
         print(
             '--Se pudo crear un Sitio externo para el disparador agente, metodo POST.--'
         )
         print(
             '--Se pudo modificar el sitio Externo a disparador servidor.--'
         )
     except Exception as e:
         print(
             '--ERROR: No se pudo crear Sitio Externo con disparador Agente, '
             'metodo POST y luego modificarlos a disparador Servidor.--\n{0}'
             .format(e))
         raise e
Ejemplo n.º 19
0
 def test_crear_editar_usuarios_supervisorprofile(self):
     # Creacion de usuarios con SupervisorProfile
     login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
     tipo_usuario = ['Administrador', 'Gerente', 'Supervisor', 'Referente']
     for usuario in tipo_usuario:
         try:
             user = usuario + uuid.uuid4().hex[:5]
             password = '******'
             crear_user(self.browser, user, password, usuario)
             self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(user))
             print('Se pudo crear un ' + usuario + ' con exito.')
         except Exception as e:
             print('--ERROR: No se pudo crear un ' + usuario + ' .--\n{0}'.format(e))
             raise e
         # modificar a otro perfil
         try:
             self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
             link_update = '//tr[@id=\'{0}\']/td/a[@name="edit_profile"]'.format(user)
             get_href(self.browser, link_update)
             if usuario == 'Administrador':
                 cambio_perfil = 'Gerente'
             elif usuario == 'Gerente':
                 cambio_perfil = 'Supervisor'
             elif usuario == 'Supervisor':
                 cambio_perfil = 'Referente'
             else:
                 cambio_perfil = 'Administrador'
             self.browser.find_element_by_xpath("//select[@id='id_rol']//option[contains\
                                            (text(), \'{0}\')]".format(cambio_perfil)).click()
             self.browser.find_element_by_xpath((
                 "//button[@type='submit' and @id='id_registrar']")).click()
             sleep(1)
             user_list = '//a[contains(@href,"/user/list/1/")]'
             get_href(self.browser, user_list)
             get_href(self.browser, link_update)
             self.assertTrue(self.browser.find_element_by_xpath("//select[@id='id_rol']//option[contains\
                                            (text(), \'{0}\')]".format(cambio_perfil)))
             print('Se pudo modificar a un Perfil de ' + cambio_perfil)
         except Exception as e:
             print('--ERROR: No se pudo modificar el perfil de un supervisor.--\n{0}'.format(e))
             raise e
Ejemplo n.º 20
0
 def test_crear_grupo_con_Autounpause(self):
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         link_create_group = '//a[contains(@href,"/grupo/nuevo")]'
         get_href(self.browser, link_create_group)
         group_name = 'grupo' + uuid.uuid4().hex[:5]
         auto_unpause = random.randrange(1, 99)
         self.browser.find_element_by_id('id_nombre').send_keys(group_name)
         self.browser.find_element_by_id('id_auto_unpause').send_keys(auto_unpause)
         self.browser.find_element_by_id('id_auto_attend_inbound').click()
         self.browser.find_element_by_id('id_auto_attend_dialer').click()
         self.browser.find_element_by_xpath((
             "//button[@type='submit' and @id='id_registrar']")).click()
         sleep(1)
         self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(group_name))
         print('--Se pudo crear un grupo con autounpause.--')
     except Exception as e:
         print('--ERROR: No se pudo crear un grupo con autounpause.--\n{0}'.format(e))
         raise e
     # Editar Grupo
     try:
         group_list = '//a[contains(@href,"/grupo/list/")]'
         get_href(self.browser, group_list)
         link_edit = "//tr[@id=\'{0}\']/td/div//a[contains(@href,'/grupo/update')]".format(
             group_name)
         get_href(self.browser, link_edit)
         nuevo_groupname = 'grupo' + uuid.uuid4().hex[:5]
         self.browser.find_element_by_id('id_nombre').clear()
         sleep(1)
         self.browser.find_element_by_id('id_nombre').send_keys(nuevo_groupname)
         self.browser.find_element_by_xpath((
             "//button[@type='submit' and @id='id_registrar']")).click()
         sleep(1)
         self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(
             nuevo_groupname))
         print('--Se pudo editar un grupo.')
     except Exception as e:
         print('--ERROR: No se pudo editar un grupo.--\n{0}'.format(e))
         raise e
Ejemplo n.º 21
0
 def test_accesos_web_usuarios_con_supervisorprofile_acceso_exitoso(self):
     tipo_usuario = ['Administrador', 'Gerente', 'Supervisor', 'Referente']
     for usuario in tipo_usuario:
         try:
             login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
             user = usuario + uuid.uuid4().hex[:5]
             password = '******'
             crear_user(self.browser, user, password, usuario)
             # Deslogueo
             deslogueo = '//a[contains(@href, "/accounts/logout/")]'
             get_href(self.browser, deslogueo)
             # Logueo
             login(self.browser, user, password)
             self.assertTrue(
                 self.browser.find_element_by_xpath(
                     '//a[contains(@href, "/accounts/logout/")]'))
             get_href(self.browser, deslogueo)
             print('--Acceso web ' + usuario + ': Acceso exitoso.--')
         except Exception as e:
             print('--ERROR: Acceso web ' + usuario +
                   ': Acceso NO exitoso.--\n{0}'.format(e))
             raise e
Ejemplo n.º 22
0
 def test_agregar_csv_lista_rapida(self):
     # agregar contactos a una lista rapida
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         Lista_rapida = 'listaRapida' + uuid.uuid4().hex[:5]
         csv_path = "/home/{0}/ominicontacto/ominicontacto_app/static/ominicontacto"\
                    "/ejemplo_lista_rapida.csv".format(USER)
         crear_lista_rapida(self.browser, csv_path, Lista_rapida)
         self.browser.find_element_by_xpath(
             '//label/input[@value = "Telefono"]').click()
         self.browser.find_element(By.CSS_SELECTOR, ".btn-success").click()
         sleep(1)
         editar_lista = '//tr[@id=\'{0}\']//td//a[contains(@href, "/actualizar/")]'.format(
             Lista_rapida)
         get_href(self.browser, editar_lista)
         nueva_lista = 'listaRapida' + uuid.uuid4().hex[:5]
         self.browser.find_element(By.NAME, 'nombre').clear()
         sleep(1)
         self.browser.find_element(By.NAME, 'nombre').send_keys(nueva_lista)
         self.browser.find_element(
             By.NAME, 'archivo_importacion').send_keys(csv_path)
         self.browser.find_element(By.CSS_SELECTOR, ".btn-primary").click()
         sleep(1)
         self.browser.find_element_by_xpath(
             '//label/input[@value = "Telefono"]').click()
         self.browser.find_element(By.CSS_SELECTOR, ".btn-success").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//td[contains(text(), \'{0}\')]'.format(nueva_lista)))
         print(
             '--Se pudo agregar contacto desde un CSV a una la lista rapida.--'
         )
     except Exception as e:
         print(
             '--ERROR: No se pudo agregar contactos desde un CSV a una lista rapida. --\n{0}'
             .format(e))
         raise e
Ejemplo n.º 23
0
 def test_agente_puede_realizar_llamada_fuera_de_campana(self):
     try:
         numero_externo = '351111111'
         login(self.browser, AGENTE_USERNAME, AGENTE_PASSWORD)
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         self.browser.find_element_by_id('call_off_campaign_menu').click()
         sleep(1)
         self.browser.find_element_by_id('phone_off_camp').send_keys(
             numero_externo)
         self.browser.find_element_by_id('call_phone_off_campaign').click()
         webdriver.ActionChains(self.browser).send_keys(
             Keys.ESCAPE).perform()
         sleep(1)
         self.assertEqual(
             self.browser.find_element_by_id('dial_status').text,
             'Connected to {0}'.format(numero_externo))
         print('--Se pudo realizar una llamada fuera de la campana.--')
     except Exception as e:
         print(
             '--ERROR: No se pudo realizar una llamada fuera de la campana.--\n{0}'
             .format(e))
         raise e
Ejemplo n.º 24
0
 def test_subir_audio_erroneo(self):
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         audio_list = '//a[contains(@href,"/audios/")]'
         get_href(self.browser, audio_list)
         audio_create = '//a[contains(@href,"/audios/create/")]'
         get_href(self.browser, audio_create)
         descripcion_audio = 'audio' + uuid.uuid4().hex[:5]
         self.browser.find_element_by_id('id_descripcion').send_keys(
             descripcion_audio)
         wav_path = "/home/{0}/ominicontacto/test/wavs/error_audio.mp3".format(
             USER)
         self.browser.find_element_by_id('id_audio_original').send_keys(
             wav_path)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.browser.find_elements_by_xpath(
             '//ul/li[text()="Allowed files: .wav"]')
         print('--No se permitio subir un audio erroneo.--')
     except Exception as e:
         print('--ERROR: Permitio subir un audio erroneo.--\n{0}'.format(e))
         raise e
Ejemplo n.º 25
0
 def test_crear_usuario_tipo_agente_como_administrador(self):
     # Creacion de un agente
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         agente_username = '******' + uuid.uuid4().hex[:5]
         agente_password = AGENTE_PASSWORD
         # rellenar etapa1 del wizard de creacion de usuario (agente)
         tipo_usuario = 'Agente'
         crear_user(self.browser, agente_username, agente_password, tipo_usuario)
         self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
         self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(
             agente_username))
         print('--Se pudo crear un agente.')
     except Exception as e:
         print('--ERROR: No se pudo crear un agente.--\n{0}'.format(e))
         raise e
     # Editar agente
     try:
         user_list = '//a[contains(@href,"/user/list/1/")]'
         get_href(self.browser, user_list)
         # xpath para editar un agente
         link_edit = '//tr[@id=\'{0}\']/td/div//a[@name="edit_user"]'.format(agente_username)
         get_href(self.browser, link_edit)
         nuevo_username = '******' + uuid.uuid4().hex[:5]
         self.browser.find_element_by_id('id_username').clear()
         sleep(1)
         self.browser.find_element_by_id('id_username').send_keys(nuevo_username)
         self.browser.find_element_by_xpath((
             "//button[@type='submit' and @id='id_registrar']")).click()
         sleep(1)
         self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
         self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(
             nuevo_username))
         print('--Se pudo editar un agente.--')
     except Exception as e:
         print('--ERROR: No se pudo editar un agente.--\n{0}'.format(e))
         raise e
Ejemplo n.º 26
0
 def test_acceso_web_usuarios_con_supervisorprofile_acceso_denegado(self):
     tipo_usuario = ['Administrador', 'Gerente', 'Supervisor', 'Referente']
     for usuario in tipo_usuario:
         try:
             # Creacion supervisor que vamos a usar para simular un acceso denegado
             login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
             user = usuario + uuid.uuid4().hex[:5]
             password = '******'
             crear_user(self.browser, user, password, usuario)
             clave_erronea = 'test'
             # Deslogueo como admin
             deslogueo = '//a[contains(@href, "/accounts/logout/")]'
             get_href(self.browser, deslogueo)
             # Logueo como supervisor
             login(self.browser, user, clave_erronea)
             self.assertEqual(
                 self.browser.find_element_by_xpath(
                     '//div[@class="alert alert-danger"]/p').text,
                 'Invalid Username/Password, please try again')
             print('--Acceso web ' + usuario + ': Acceso denegado.--')
         except Exception as e:
             print('--ERROR: Acceso web ' + usuario +
                   ': Acceso NO denegado.--\n{0}'.format(e))
             raise e
Ejemplo n.º 27
0
 def test_crear_update_calificaciones(self):
     # Crear 7 nuevas calificaciones.
     try:
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         lista_calificaciones = ['Venta', 'No Venta', 'No Interesado',
                                 'No conoce', 'Ya Tiene', 'Es jubilado']
         for items in lista_calificaciones:
             crear_calificacion(self.browser, items)
             self.assertTrue(self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'
                             .format(items)))
         print('--Se pudo crear 7 calificaciones.--')
     except Exception as e:
         print('--ERROR: No se pudo crear 7 calificaciones.--\n{0}'.format(e))
         raise e
     # Editar la calificacion: "Ya tiene" por "Ya conoce".
     try:
         update_calificacion = 'Ya conoce'
         calificacion = 'Ya Tiene'
         self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
         link_update = self.browser.find_element_by_xpath(
             '//tr[@id = \'{0}\']//a[contains(@href, "/update/")]'
             .format(calificacion))
         href_update = link_update.get_attribute('href')
         self.browser.get(href_update)
         self.browser.find_element_by_id('id_nombre').clear()
         self.browser.find_element_by_id('id_nombre').send_keys(update_calificacion)
         self.browser.find_element_by_xpath("//button[@type='submit']").click()
         sleep(1)
         self.browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
         self.assertTrue(self.browser.find_elements_by_xpath('//td[text()=\'{0}\']'.format(
             update_calificacion)))
         print('--Se pudo editar la calificacion: "Ya tiene" por "Ya conoce".--')
     except Exception as e:
         print('--Error: No se pudo editar la calificacion:'
               '"Ya tiene" por "Ya conoce".-- \n{0}'.format(e))
         raise e
Ejemplo n.º 28
0
 def test_crear_modificar_eliminar_audio(self):
     try:
         # Crear audio
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         audio_list = '//a[contains(@href,"/audios/")]'
         get_href(self.browser, audio_list)
         audio_create = '//a[contains(@href,"/audios/create/")]'
         get_href(self.browser, audio_create)
         descripcion_audio = 'audio' + uuid.uuid4().hex[:5]
         self.browser.find_element_by_id('id_descripcion').send_keys(
             descripcion_audio)
         wav_path = "/home/{0}/ominicontacto/test/wavs/8k16bitpcm.wav".format(
             USER)
         self.browser.find_element_by_id('id_audio_original').send_keys(
             wav_path)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.browser.find_elements_by_xpath(
             '//tr[text()=\'{0}\']'.format(descripcion_audio))
         print('--Se pudo crear un audio.--')
     except Exception as e:
         print('--ERROR: No se pudo crear un audio.--\n{0}'.format(e))
         raise e
     # Modificar Audio
     try:
         duracion_wav_path = 13
         duracion_nuevo_wav = 35
         self.browser.find_element_by_xpath(
             '//tr[@id=\'{0}\']//a[contains(@href, "/update/")]'.format(
                 descripcion_audio)).click()
         nuevo_wav = "/home/{0}/ominicontacto/test/wavs/audio1.wav".format(
             USER)
         self.browser.find_element_by_id('id_audio_original').send_keys(
             nuevo_wav)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.browser.find_element_by_xpath(
             '//tr[@id=\'{0}\']//a[contains(@href, "/update/")]'.format(
                 descripcion_audio)).click()
         self.browser.find_element_by_id('id_audio_original').send_keys(
             nuevo_wav)
         self.assertNotEqual(
             self.browser.find_element_by_xpath(
                 "//input[text()=\'{0}\']".format(duracion_nuevo_wav)),
             duracion_wav_path)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         print('--Se pudo modificar un audio.--')
     except Exception as e:
         print('--ERROR: No se pudo modificar un audio.--\n{0}'.format(e))
         raise e
     # Eliminar Audio
     try:
         self.browser.find_element_by_xpath(
             '//tr[@id=\'{0}\']//a[contains(@href, "/eliminar/")]'.format(
                 descripcion_audio)).click()
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertFalse(
             self.browser.find_elements_by_xpath(
                 '//tr[text()=\'{0}\']'.format(nuevo_wav)))
         print('--Se pudo eliminar un audio.--')
     except Exception as e:
         print('--ERROR: No se pudo eliminar un audio.--\n{0}'.format(e))
         raise e
Ejemplo n.º 29
0
 def setUpClass(cls):
     # super(IntegrationTests, cls).setUpClass()
     cls.setUp()
     login(cls.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
     cls.tearDown()
Ejemplo n.º 30
0
    def test_crear_formularios(self):
        try:
            login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
            nuevo_formulario = '//a[contains(@href, "/formulario/nuevo")]'
            get_href(self.browser, nuevo_formulario)
            nombre_form = 'form' + uuid.uuid4().hex[:5]
            descripcion = 'Este form fue generado para tests'
            self.browser.find_element(By.NAME, 'nombre').send_keys(nombre_form)
            self.browser.find_element(By.NAME,
                                      'descripcion').send_keys(descripcion)
            self.browser.find_element(By.CSS_SELECTOR, ".btn-primary").click()
            self.browser.implicitly_wait(3)

            nombre_campos = [
                'Nombre', 'Fecha_nacimiento', 'Opciones', 'Comentarios'
            ]
            crear_campos_formulario(self.browser, nombre_campos)
            self.browser.find_element(By.CSS_SELECTOR, ".btn-primary").click()
            self.browser.implicitly_wait(3)
            self.browser.execute_script(
                'window.scrollTo(0, document.body.scrollHeight);')
            self.browser.find_element(By.CSS_SELECTOR, ".btn-primary").click()
            self.browser.implicitly_wait(3)
            self.browser.find_element(By.LINK_TEXT, "YES").click()
            self.browser.implicitly_wait(3)
            self.browser.execute_script(
                'window.scrollTo(0, document.body.scrollHeight);')
            self.browser.find_element(
                By.XPATH,
                '//tr[@id = \'{0}\']/td[4]/a'.format(nombre_form)).click()
            for items in nombre_campos:
                self.assertTrue(self.browser.find_elements(By.NAME, items))
                print('--Se pudo crear un Formulario con un campo \'{0}\'.--'.
                      format(items))
        except Exception as e:
            print('--ERROR: No se pudo crear un Formulario.-- \n{0}'.format(e))
            raise e
        # Ocultar y Mostrar Formulario.
        try:
            self.browser.find_element(By.CSS_SELECTOR,
                                      ".btn-outline-primary").click()
            self.browser.implicitly_wait(3)
            self.browser.find_element(
                By.XPATH, '//tr[@id=\'{0}\']/td[5]'.format(
                    nombre_form)).click()  # oculto form
            sleep(3)
            self.assertFalse(
                self.browser.find_elements(
                    By.XPATH, '//tr[@id=\'{0}\']'.format(nombre_form)))
            mostrar_ocultos = '//a[contains(@href, "formulario/list/mostrar_ocultos/")]'
            get_href(self.browser, mostrar_ocultos)
            self.browser.find_element(
                By.XPATH, '//tr[@id=\'{0}\']/td[5]'.format(
                    nombre_form)).click()  # muestro form
            self.assertTrue(
                self.browser.find_elements(
                    By.XPATH, '//tr[@id=\'{0}\']'.format(nombre_form)))
            print('--Se pudo ocultar y mostrar un formulario.--')
        except Exception as e:
            print(
                '--ERROR: No se pudo ocultar y mostrar un formulario.-- \n{0}'.
                format(e))
            raise e