From 912db8913fbe63fcf83e588ded248b104eb78221 Mon Sep 17 00:00:00 2001 From: Usman Muzaffar Date: Mon, 3 Jun 2019 11:33:32 -0400 Subject: [PATCH] Ensure that successful maintenance tasks don't leave a notifier window behind when running regression tests. --- web/pgadmin/feature_tests/file_manager_test.py | 4 ++-- .../pg_utilities_backup_restore_test.py | 1 + .../feature_tests/pg_utilities_maintenance_test.py | 1 + .../xss_checks_pgadmin_debugger_test.py | 13 +++++++++---- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/web/pgadmin/feature_tests/file_manager_test.py b/web/pgadmin/feature_tests/file_manager_test.py index f90dd130c..1c74d40b6 100644 --- a/web/pgadmin/feature_tests/file_manager_test.py +++ b/web/pgadmin/feature_tests/file_manager_test.py @@ -117,10 +117,10 @@ class CheckFileManagerFeatureTest(BaseFeatureTest): iteration = 0 success = False while not success and iteration < 4: - self.page.find_by_xpath("//th[@data-column='0']" - "/div/span[text()='Name']").click() # Check for sort Ascending try: + self.page.find_by_xpath("//th[@data-column='0']" + "/div/span[text()='Name']").click() self.wait.until( EC.presence_of_element_located(( By.CSS_SELECTOR, diff --git a/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py b/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py index 7d59aa150..9afe007b5 100644 --- a/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py +++ b/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py @@ -161,6 +161,7 @@ class PGUtilitiesBackupFeatureTest(BaseFeatureTest): os.remove(backup_file) def after(self): + test_gui_helper.close_bgprocess_popup(self) self.page.remove_server(self.server) connection = test_utils.get_db_connection( self.server['db'], diff --git a/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py b/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py index 81208f7a2..129f63478 100644 --- a/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py +++ b/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py @@ -116,6 +116,7 @@ class PGUtilitiesMaintenanceFeatureTest(BaseFeatureTest): "div.wcFloatingFocus div.fa-close").click() def after(self): + test_gui_helper.close_bgprocess_popup(self) self.page.remove_server(self.server) connection = test_utils.get_db_connection( self.server['db'], diff --git a/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py b/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py index 3da581fdc..5f27d97c6 100644 --- a/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py +++ b/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py @@ -7,6 +7,8 @@ # ########################################################################## +import random + from selenium.webdriver import ActionChains from selenium.common.exceptions import TimeoutException from regression.python_test_utils import test_utils @@ -22,6 +24,7 @@ class CheckDebuggerForXssFeatureTest(BaseFeatureTest): scenarios = [ ("Tests to check if Debugger is vulnerable to XSS", dict()) ] + function_name = "" def before(self): with test_utils.Database(self.server) as (connection, _): @@ -32,12 +35,14 @@ class CheckDebuggerForXssFeatureTest(BaseFeatureTest): ) # Some test function is needed for debugger + self.function_name = "a_test_function" + \ + str(random.randint(10000, 65535)) test_utils.create_debug_function( - self.server, "postgres", "a_test_function" + self.server, "postgres", self.function_name ) if test_utils.does_function_exist(self.server, 'postgres', - 'a_test_function') != 'True': + self.function_name) != 'True': raise Exception("The required function is not found") def runTest(self): @@ -49,7 +54,7 @@ class CheckDebuggerForXssFeatureTest(BaseFeatureTest): def after(self): self.page.remove_server(self.server) test_utils.drop_debug_function(self.server, "postgres", - "a_test_function") + self.function_name) def _function_node_expandable(self): self.page.toggle_open_server(self.server['name']) @@ -58,7 +63,7 @@ class CheckDebuggerForXssFeatureTest(BaseFeatureTest): self.page.toggle_open_tree_item('Schemas') self.page.toggle_open_tree_item('public') self.page.toggle_open_function_node() - self.page.select_tree_item("a_test_function()") + self.page.select_tree_item(self.function_name + "()") def _debug_function(self): self.page.driver.find_element_by_link_text("Object").click()