Пример #1
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
Пример #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
 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
Пример #4
0
 def test_editar_eliminar_lista_contacto_base(self):
     # Editar Lista de Contacto
     try:
         csv_path = "/home/{0}/ominicontacto/ominicontacto_app/static/ominicontacto"\
             "/example-db.csv".format(USER)
         BD_nueva = 'BD' + uuid.uuid4().hex[:5]
         multinum = False
         crear_BD(self.browser, csv_path, BD_nueva, multinum)
         lista_contacto = '//tr[@id=\'{0}\']//a[contains(@href, "/list_contacto/")]'.format(
             BD_nueva)
         get_href(self.browser, lista_contacto)
         contacto = '4553101'
         editar_contacto = '//tr[@id=\'{0}\']//td//a[contains(@href, "/update/")]'.format(
             contacto)
         get_href(self.browser, editar_contacto)
         self.browser.find_element_by_id('id_telefono').clear()
         sleep(1)
         nuevo_telefono = '4789032'
         self.browser.find_element_by_id('id_telefono').send_keys(
             nuevo_telefono)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(nuevo_telefono)))
         print('--Se pudo editar un contacto en la BD.--')
     except Exception as e:
         print('--ERROR: No se pudo editar un contacto en la BD.--\n{0}'.
               format(e))
         raise e
     # Eliminar lista de contacto
     try:
         lista_BD = '//a[contains(@href,"/base_datos_contacto/")]'
         get_href(self.browser, lista_BD)
         lista_contacto = '//tr[@id=\'{0}\']//a[contains(@href, "/list_contacto/")]'.format(
             BD_nueva)
         get_href(self.browser, lista_contacto)
         eliminar_contacto = '//tr[@id=\'{0}\']//td//a[contains(@href, "/eliminar/")]'.format(
             nuevo_telefono)
         get_href(self.browser, eliminar_contacto)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertFalse(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(nuevo_telefono)))
         print('--Se pudo eliminar un contacto en la BD.--')
     except Exception as e:
         print('--ERROR: No se pudo eliminar un contacto en la BD.--\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
Пример #7
0
 def test_crear_agregar_contacto_base_multinum(self):
     # Crear Base Multinum
     try:
         csv_path = "/home/{0}/ominicontacto/test/base_prueba_multinum.csv".format(
             USER)
         BD_nueva = 'BD' + uuid.uuid4().hex[:5]
         multinum = True
         crear_BD(self.browser, csv_path, BD_nueva, multinum)
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(BD_nueva)))
         print('--Se pudo crear una BD Multinum.--')
     except Exception as e:
         print(
             '--ERROR: No se pudo crear una BD Multinum.--\n{0}'.format(e))
         raise e
     # Agregar un Contacto
     try:
         agregar_contacto = '//tr[@id=\'{0}\']//td//a[contains'\
                            '(@href, "/agregar_contacto/")]'.format(BD_nueva)
         get_href(self.browser, agregar_contacto)
         telefono = '3456789'
         cell = '154352879'
         self.browser.find_element_by_id('id_telefono').send_keys(telefono)
         self.browser.find_element_by_id('id_cell').send_keys(cell)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         lista_contacto = '//tr[@id=\'{0}\']//a[contains(@href, "/list_contacto/")]'.format(
             BD_nueva)
         get_href(self.browser, lista_contacto)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(telefono)))
         print('--Se pudo agregar un solo contacto a la BD.--')
     except Exception as e:
         print(
             '--ERROR: No se pudo agregar un solo contacto a la BD.--\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
Пример #9
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
Пример #10
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
Пример #11
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
Пример #12
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
 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
Пример #14
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
Пример #15
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
Пример #16
0
 def test_crear_agregar_csv_base_multinum(self):
     # Agregar un CSV
     try:
         csv_path = "/home/{0}/ominicontacto/test/base_prueba_multinum.csv".format(
             USER)
         BD_nueva = 'BD' + uuid.uuid4().hex[:5]
         multinum = True
         crear_BD(self.browser, csv_path, BD_nueva, multinum)
         nuevo_path = "/home/{0}/ominicontacto/test/base_prueba_multinum2.csv".format(
             USER)
         lista_BD = '//a[contains(@href,"/base_datos_contacto/")]'
         get_href(self.browser, lista_BD)
         agregar_csv = '//tr[@id=\'{0}\']//td//a[contains(@href, "/actualizar/")]'.format(
             BD_nueva)
         get_href(self.browser, agregar_csv)
         self.browser.find_element_by_id(
             'id_archivo_importacion').send_keys(nuevo_path)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         numero = '351351319'
         get_href(self.browser, lista_BD)
         lista_contacto = '//tr[@id=\'{0}\']//a[contains(@href, "/list_contacto/")]'.format(
             BD_nueva)
         get_href(self.browser, lista_contacto)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(numero)))
         print('--Se puede agregar contactos a la BD a traves de un .CSV--')
     except Exception as e:
         print('--ERROR: No se pudo agregar contactos a la BD a'
               'traves de un CSV.--\n{0}'.format(e))
         raise e
Пример #17
0
 def test_crear_ocultar_base_de_datos(self):
     # Crear nueva base de datos
     try:
         csv_path = "/home/{0}/ominicontacto/ominicontacto_app/static/ominicontacto"\
             "/example-db.csv".format(USER)
         BD_nueva = 'BD' + uuid.uuid4().hex[:5]
         multinum = False
         crear_BD(self.browser, csv_path, BD_nueva, multinum)
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(BD_nueva)))
         print('--Se pudo crear una BD.--')
     except Exception as e:
         print('--ERROR: No se pudo crear una BD.--\n{0}'.format(e))
         raise e
     # Ocultar Base de datos
     try:
         lista_BD = '//a[contains(@href,"/base_datos_contacto/")]'
         get_href(self.browser, lista_BD)
         ocultar_BD = '//tr[@id=\'{0}\']//td//a[contains(@href, "/ocultar/")]'.format(
             BD_nueva)
         get_href(self.browser, ocultar_BD)
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         self.assertFalse(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(BD_nueva)))
         self.browser.find_element_by_xpath('//a[@onclick]').click()
         sleep(1)
         self.browser.execute_script(
             'window.scrollTo(0, document.body.scrollHeight);')
         desocultar = '//tr[@id=\'{0}\']//td//a[4]'.format(BD_nueva)
         get_href(self.browser, desocultar)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//tr[@id=\'{0}\']'.format(BD_nueva)))
         print('--Se oculto y desoculto con exito una base de datos.--')
     except Exception as e:
         print(
             '--ERROR: No se pudo ocultar y desocultar una base de datos.--\n{0}'
             .format(e))
         raise e
Пример #18
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
Пример #19
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
Пример #20
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
Пример #21
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
Пример #22
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
Пример #23
0
 def test_pausa_productiva(self):
     try:
         # crear pausa productiva
         login(self.browser, ADMIN_USERNAME, ADMIN_PASSWORD)
         link_create_pausa = '//a[contains(@href,"/pausa/nuevo")]'
         get_href(self.browser, link_create_pausa)
         pausa_nueva = 'pausa_pro' + uuid.uuid4().hex[:5]
         self.browser.find_element_by_id('id_nombre').send_keys(pausa_nueva)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//td[text()=\'{0}\']'.format(pausa_nueva)))
         print('--Se pudo crear una pausa productiva.--')
     except Exception as e:
         print('--ERROR: No se pudo crear una pausa productiva.--\n{0}'.
               format(e))
         raise e
     # modificar pausa productiva
     try:
         link_edit = '//tr[@id=\'{0}\']//a[contains(@href, "/pausa/update/")]'.format(
             pausa_nueva)
         get_href(self.browser, link_edit)
         pausa_recreativa = 'pausa_rec' + 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(
             pausa_recreativa)
         self.browser.find_element_by_xpath(
             "//select/option[@value = 'R']").click()
         sleep(1)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//td[text()=\'{0}\']'.format(pausa_recreativa)))
         print('--Se pudo modificar una pausa productiva.--')
     except Exception as e:
         print('--ERROR: No se pudo modificar una pausa productiva.--\n{0}'.
               format(e))
         raise e
     # eliminar pausa recreativa
     try:
         link_delete = "//tr[@id=\'{0}\']//a[contains(@href, '/pausa/delete/')]".format(
             pausa_recreativa)
         get_href(self.browser, link_delete)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 "//tr[@id='pausa_eliminada']//td[contains(text(), \'{0}\')]"
                 .format(pausa_recreativa)))
         print('--Se pudo eliminar una pausa recreativa.--')
     except Exception as e:
         print('--ERROR: No se pudo eliminar una pausa recreativa.--\n{0}'.
               format(e))
         raise e
     # reactivar pausa recreativa
     try:
         link_reactivate = "//tr[@id='pausa_eliminada']//td[@id=\'{0}\']//"\
             "a[contains(@href, '/pausa/delete/')]".format(pausa_recreativa)
         get_href(self.browser, link_reactivate)
         self.browser.find_element_by_xpath(
             "//button[@type='submit']").click()
         sleep(1)
         self.assertTrue(
             self.browser.find_elements_by_xpath(
                 '//td[text()=\'{0}\']'.format(pausa_recreativa)))
         print('--Se pudo reactivar una pausa recreativa.--')
     except Exception as e:
         print('--ERROR: No se pudo reactivar una pausa recreativa.--\n{0}'.
               format(e))
         raise e