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 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()
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
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_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
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
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
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