public inbox for [email protected]
help / color / mirror / Atom feed[pgAdmin4][RM3936] - Fixes for feature test due to changes in pgadmin4
4+ messages / 3 participants
[nested] [flat]
* [pgAdmin4][RM3936] - Fixes for feature test due to changes in pgadmin4
@ 2019-02-25 10:08 Usman Muzaffar <[email protected]>
0 siblings, 2 replies; 4+ messages in thread
From: Usman Muzaffar @ 2019-02-25 10:08 UTC (permalink / raw)
To: pgadmin-hackers
Hi Hackers,
Please find here attached patch for the followings
i) Fixes for the query tool related test cases, the tab name convention is
changed which is catered in the patch.
ii) The 'dependent' tab was not showing information until it is refreshed
so handled it during automation(the issue was not reproducible manually).
iii) New locator file is created to store locators/xpaths.
iv) Changes in pgadmin_page file related to js.
Patch by :
Usman & Aditya([email protected])
--
Thanks,
Usman Muzaffar
QA Team
EnterpriseDB Corporation
Attachments:
[application/octet-stream] RM3936_v1.patch (48.9K, 3-RM3936_v1.patch)
download | inline diff:
diff --git a/web/pgadmin/browser/static/js/frame.js b/web/pgadmin/browser/static/js/frame.js
index a062a6a2..5e5e7df1 100644
--- a/web/pgadmin/browser/static/js/frame.js
+++ b/web/pgadmin/browser/static/js/frame.js
@@ -53,7 +53,7 @@ define([
myPanel.closeable(!!that.isCloseable);
- var $frameArea = $('<div style="position:absolute;top:0 !important;width:100%;height:100%;display:table">');
+ var $frameArea = $('<div style="position:absolute;top:0 !important;width:100%;height:100%;display:table;z-index:0;">');
myPanel.layout().addItem($frameArea);
that.panel = myPanel;
var frame = new wcIFrame($frameArea, myPanel);
diff --git a/web/pgadmin/feature_tests/copy_selected_query_results_feature_test.py b/web/pgadmin/feature_tests/copy_selected_query_results_feature_test.py
index 382020f6..0837b84a 100644
--- a/web/pgadmin/feature_tests/copy_selected_query_results_feature_test.py
+++ b/web/pgadmin/feature_tests/copy_selected_query_results_feature_test.py
@@ -43,9 +43,6 @@ class CopySelectedQueryResultsFeatureTest(BaseFeatureTest):
self.page.toggle_open_tree_item(self.test_db)
self.page.open_query_tool()
- self.page.driver.switch_to_frame(
- self.page.driver.find_element_by_tag_name("iframe"))
-
self.page.fill_codemirror_area_with(
"SELECT * FROM %s ORDER BY some_column" % self.test_table_name)
diff --git a/web/pgadmin/feature_tests/file_manager_test.py b/web/pgadmin/feature_tests/file_manager_test.py
index 90548079..288dc983 100644
--- a/web/pgadmin/feature_tests/file_manager_test.py
+++ b/web/pgadmin/feature_tests/file_manager_test.py
@@ -17,6 +17,7 @@ from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from regression.feature_utils.base_feature_test import BaseFeatureTest
+from .locators import QueryToolLocatorsCss
class CheckFileManagerFeatureTest(BaseFeatureTest):
@@ -41,7 +42,7 @@ class CheckFileManagerFeatureTest(BaseFeatureTest):
os.remove(self.XSS_FILE)
def after(self):
- self.page.close_query_tool('.sql', False)
+ self.page.close_query_tool(False)
self.page.remove_server(self.server)
def runTest(self):
@@ -64,14 +65,11 @@ class CheckFileManagerFeatureTest(BaseFeatureTest):
self.page.open_query_tool()
def _create_new_file(self):
- self.page.find_by_id("btn-save").click()
- self.page.wait_for_query_tool_loading_indicator_to_disappear()
- self.page.find_by_css_selector('.change_file_types')
+ self.page.find_by_css_selector(QueryToolLocatorsCss.btn_save).click()
# Set the XSS value in input
- self.page.find_by_id("file-input-path").clear()
- self.page.find_by_id("file-input-path").send_keys(
- self.XSS_FILE
- )
+ print('Create file')
+ self.page.find_by_css_selector('.change_file_types')
+ self.page.fill_input_by_css_selector("#file-input-path", self.XSS_FILE)
# Save the file
self.page.click_modal('Create')
self.page.wait_for_query_tool_loading_indicator_to_disappear()
@@ -79,13 +77,8 @@ class CheckFileManagerFeatureTest(BaseFeatureTest):
def _open_file_manager_and_check_xss_file(self):
self.page.find_by_id("btn-load-file").click()
self.page.find_by_css_selector('.change_file_types')
- self.page.find_by_id("file-input-path").clear()
- self.page.find_by_id("file-input-path").send_keys(
- '/tmp/'
- )
- self.page.find_by_id("file-input-path").send_keys(
- Keys.RETURN
- )
+ self.page.fill_input_by_css_selector("#file-input-path", "/tmp/",
+ key_after_input=Keys.RETURN)
if self.page.driver.capabilities['browserName'] == 'firefox':
table = self.page.wait_for_element_to_reload(
diff --git a/web/pgadmin/feature_tests/locators.py b/web/pgadmin/feature_tests/locators.py
new file mode 100644
index 00000000..34aea87c
--- /dev/null
+++ b/web/pgadmin/feature_tests/locators.py
@@ -0,0 +1,21 @@
+class QueryToolLocatorsCss:
+ btn_save = "#btn-save"
+ btn_execute_query = "#btn-flash"
+ btn_query_dropdown = "#btn-query-dropdown"
+ btn_auto_rollback = "#btn-auto-rollback"
+ btn_auto_commit = "#btn-auto-commit"
+ btn_cancel_query = "#btn-cancel-query"
+ btn_explain = "#btn-explain"
+ btn_explain_analyze = "#btn-explain-analyze"
+ btn_explain_options_dropdown = "#btn-explain-options-dropdown"
+ btn_explain_verbose = "#btn-explain-verbose"
+ btn_explain_costs = "#btn-explain-costs"
+ btn_explain_buffers = "#btn-explain-buffers"
+ btn_explain_timing = "#btn-explain-timing"
+ btn_clear_dropdown = "#btn-clear-dropdown"
+ btn_clear = "#btn-clear"
+
+ query_editor_panel = "#output-panel"
+ query_history_selected = "#query_list .selected"
+ query_history_detail = "#query_detail"
+ editor_panel = "#output-panel"
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 1c89393d..c98e2fba 100644
--- a/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py
+++ b/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py
@@ -69,7 +69,8 @@ class PGUtilitiesBackupFeatureTest(BaseFeatureTest):
self.wait.until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, ".file [name='file']"))).click()
- self.page.fill_input_by_field_name("file", "test_backup")
+ self.page.fill_input_by_field_name(
+ "file", "test_backup", loose_focus=True)
self.page.find_by_xpath("//button[contains(@class,'fa-save') "
"and contains(.,'Backup')]").click()
@@ -83,6 +84,7 @@ class PGUtilitiesBackupFeatureTest(BaseFeatureTest):
self.page.find_by_css_selector(
".pg-bg-more-details").click()
+ backup_file = None
# Check for XSS in Backup details
if self.is_xss_check:
self._check_detailed_window_for_xss('Backup')
@@ -99,7 +101,6 @@ class PGUtilitiesBackupFeatureTest(BaseFeatureTest):
self.assertIn("pg_dump", str(command))
- backup_file = None
if command:
backup_file = command[int(command.find('--file')) +
8:int(command.find('--host')) - 2]
@@ -117,7 +118,8 @@ class PGUtilitiesBackupFeatureTest(BaseFeatureTest):
self.wait.until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, ".file [name='file']"))).click()
- self.page.fill_input_by_field_name("file", "test_backup")
+ self.page.fill_input_by_field_name(
+ "file", "test_backup", loose_focus=True)
self.page.find_by_xpath("//button[contains(@class,'fa-upload')"
" and contains(.,'Restore')]").click()
diff --git a/web/pgadmin/feature_tests/query_tool_journey_test.py b/web/pgadmin/feature_tests/query_tool_journey_test.py
index d863f8e8..670de66f 100644
--- a/web/pgadmin/feature_tests/query_tool_journey_test.py
+++ b/web/pgadmin/feature_tests/query_tool_journey_test.py
@@ -15,6 +15,7 @@ from selenium.webdriver.common.keys import Keys
from regression.python_test_utils import test_utils
from regression.feature_utils.base_feature_test import BaseFeatureTest
+from .locators import QueryToolLocatorsCss
class QueryToolJourneyTest(BaseFeatureTest):
@@ -73,16 +74,18 @@ class QueryToolJourneyTest(BaseFeatureTest):
def _test_history_tab(self):
self.__clear_query_tool()
- editor_input = self.page.find_by_id("output-panel")
+ editor_input = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.query_editor_panel)
self.page.click_element(editor_input)
self._execute_query("SELECT * FROM table_that_doesnt_exist")
self.page.click_tab("Query History")
selected_history_entry = self.page.find_by_css_selector(
- "#query_list .selected")
+ QueryToolLocatorsCss.query_history_selected)
self.assertIn("SELECT * FROM table_that_doesnt_exist",
selected_history_entry.text)
- failed_history_detail_pane = self.page.find_by_id("query_detail")
+ failed_history_detail_pane = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.query_history_detail)
self.assertIn(
"Error Message relation \"table_that_doesnt_exist\" "
@@ -108,7 +111,8 @@ class QueryToolJourneyTest(BaseFeatureTest):
newly_selected_history_entry = self.page.find_by_xpath(
"//*[@id='query_list']/ul/li[2]")
self.page.click_element(newly_selected_history_entry)
- selected_history_detail_pane = self.page.find_by_id("query_detail")
+ selected_history_detail_pane = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.query_history_detail)
self.assertIn("SELECT * FROM table_that_doesnt_exist",
selected_history_detail_pane.get_attribute('innerHTML'))
@@ -118,7 +122,8 @@ class QueryToolJourneyTest(BaseFeatureTest):
self.page.fill_codemirror_area_with("SELECT * FROM hats")
for _ in range(15):
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab("Query History")
@@ -140,7 +145,8 @@ class QueryToolJourneyTest(BaseFeatureTest):
self.page.click_element(editor_input)
self.page.fill_codemirror_area_with("SELECT * FROM hats")
for _ in range(15):
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab("History")
@@ -173,7 +179,8 @@ class QueryToolJourneyTest(BaseFeatureTest):
def _execute_query(self, query):
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
def _assert_clickable(self, element):
self.page.click_element(element)
diff --git a/web/pgadmin/feature_tests/query_tool_tests.py b/web/pgadmin/feature_tests/query_tool_tests.py
index c6e609cc..3372ccf9 100644
--- a/web/pgadmin/feature_tests/query_tool_tests.py
+++ b/web/pgadmin/feature_tests/query_tool_tests.py
@@ -18,6 +18,7 @@ from selenium.webdriver.common.by import By
from regression.python_test_utils import test_utils
from regression.feature_utils.base_feature_test import BaseFeatureTest
import config
+from .locators import QueryToolLocatorsCss
class QueryToolFeatureTest(BaseFeatureTest):
@@ -110,28 +111,34 @@ class QueryToolFeatureTest(BaseFeatureTest):
# this will set focus to correct iframe.
self.page.fill_codemirror_area_with('')
- explain_op = self.page.find_by_id("btn-explain-options-dropdown")
+ explain_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_explain_options_dropdown)
explain_op.click()
# disable Explain options and auto rollback only if they are enabled.
- for op in ('explain-verbose', 'explain-costs',
- 'explain-buffers', 'explain-timing'):
- btn = self.page.find_by_id("btn-{}".format(op))
+ for op in (QueryToolLocatorsCss.btn_explain_verbose,
+ QueryToolLocatorsCss.btn_explain_costs,
+ QueryToolLocatorsCss.btn_explain_buffers,
+ QueryToolLocatorsCss.btn_explain_timing):
+ btn = self.page.find_by_css_selector(op)
check = btn.find_element_by_tag_name('i')
if 'visibility-hidden' not in check.get_attribute('class'):
btn.click()
- query_op = self.page.find_by_id("btn-query-dropdown")
+ query_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_query_dropdown)
query_op.click()
# disable auto rollback only if they are enabled
- btn = self.page.find_by_id("btn-auto-rollback")
+ btn = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_auto_rollback)
check = btn.find_element_by_tag_name('i')
if 'visibility-hidden' not in check.get_attribute('class'):
btn.click()
# enable autocommit only if it's disabled
- btn = self.page.find_by_id("btn-auto-commit")
+ btn = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_auto_commit)
check = btn.find_element_by_tag_name('i')
if 'visibility-hidden' in check.get_attribute('class'):
btn.click()
@@ -145,14 +152,14 @@ class QueryToolFeatureTest(BaseFeatureTest):
self.page.toggle_open_tree_item(self.test_db)
def _clear_query_tool(self):
- self.page.click_element(
- self.page.find_by_xpath("//*[@id='btn-clear-dropdown']")
+ self.page.click_element(self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_clear_dropdown)
)
ActionChains(self.driver) \
- .move_to_element(self.page.find_by_xpath("//*[@id='btn-clear']")) \
- .perform()
+ .move_to_element(self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_clear)).perform()
self.page.click_element(
- self.page.find_by_xpath("//*[@id='btn-clear']")
+ self.page.find_by_css_selector(QueryToolLocatorsCss.btn_clear)
)
self.page.click_modal('Yes')
@@ -171,7 +178,8 @@ SELECT generate_series(1, {}) as id1, 'dummy' as id2""".format(
wait = WebDriverWait(self.page.driver, 10)
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
wait.until(EC.presence_of_element_located(
(By.XPATH,
@@ -192,7 +200,8 @@ SELECT generate_series(1, {}) as id1, 'dummy' as id2""".format(
print("On demand result set on grid select all... ",
file=sys.stderr, end="")
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
wait.until(EC.presence_of_element_located(
(By.XPATH,
@@ -210,7 +219,8 @@ SELECT generate_series(1, {}) as id1, 'dummy' as id2""".format(
print("On demand result set on column select all... ",
file=sys.stderr, end="")
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
@@ -252,16 +262,19 @@ SELECT generate_series(1, 1000) as id order by id desc"""
self.page.fill_codemirror_area_with(query)
- explain_op = self.page.find_by_id("btn-explain-options-dropdown")
+ explain_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_explain_options_dropdown)
explain_op.click()
# disable Explain options and auto rollback only if they are enabled.
- for op in ('explain-verbose', 'explain-costs'):
- self.page.find_by_id("btn-{}".format(op)).click()
+ for op in (QueryToolLocatorsCss.btn_explain_verbose,
+ QueryToolLocatorsCss.btn_explain_costs):
+ self.page.find_by_css_selector(op).click()
explain_op.click()
- self.page.find_by_id("btn-explain").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_explain).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
@@ -285,16 +298,19 @@ SELECT generate_series(1, 1000) as id order by id desc"""
self.page.fill_codemirror_area_with(query)
- explain_op = self.page.find_by_id("btn-explain-options-dropdown")
+ explain_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_explain_options_dropdown)
explain_op.click()
# disable Explain options and auto rollback only if they are enabled.
- for op in ('explain-buffers', 'explain-timing'):
- self.page.find_by_id("btn-{}".format(op)).click()
+ for op in (QueryToolLocatorsCss.btn_explain_buffers,
+ QueryToolLocatorsCss.btn_explain_timing):
+ self.page.find_by_css_selector(op).click()
explain_op.click()
- self.page.find_by_id("btn-explain-analyze").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_explain_analyze).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
@@ -324,14 +340,17 @@ CREATE TABLE public.{}();""".format(table_name)
self.page.fill_codemirror_area_with(query)
- query_op = self.page.find_by_id("btn-query-dropdown")
+ query_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_query_dropdown)
query_op.click()
- self.page.find_by_id("btn-auto-commit").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_auto_commit).click()
query_op.click()
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
@@ -347,7 +366,8 @@ CREATE TABLE public.{}();""".format(table_name)
-- 4. Check if table is *NOT* created.
ROLLBACK;"""
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
@@ -364,7 +384,8 @@ ROLLBACK;"""
SELECT relname FROM pg_class
WHERE relkind IN ('r','s','t') and relnamespace = 2200::oid;"""
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Data Output')
@@ -393,14 +414,17 @@ END;"""
wait = WebDriverWait(self.page.driver, 10)
- query_op = self.page.find_by_id("btn-query-dropdown")
+ query_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_query_dropdown)
query_op.click()
- self.page.find_by_id("btn-auto-commit").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_auto_commit).click()
query_op.click()
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
@@ -416,7 +440,8 @@ CREATE TABLE public.{}();""".format(table_name)
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
@@ -433,7 +458,8 @@ CREATE TABLE public.{}();""".format(table_name)
-- 5. Check if table is created event after ROLLBACK.
ROLLBACK;"""
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
@@ -451,7 +477,8 @@ ROLLBACK;"""
SELECT relname FROM pg_class
WHERE relkind IN ('r','s','t') and relnamespace = 2200::oid;"""
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.click_tab('Data Output')
self.page.wait_for_query_tool_loading_indicator_to_disappear()
@@ -479,16 +506,20 @@ END;"""
self.page.fill_codemirror_area_with(query)
- query_op = self.page.find_by_id("btn-query-dropdown")
+ query_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_query_dropdown)
query_op.click()
- self.page.find_by_id("btn-auto-rollback").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_auto_rollback).click()
- self.page.find_by_id("btn-auto-commit").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_auto_commit).click()
query_op.click()
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self._clear_query_tool()
@@ -504,7 +535,8 @@ CREATE TABLE public.{}();""".format(table_name)
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
@@ -522,7 +554,8 @@ CREATE TABLE public.{}();""".format(table_name)
-- 6. Check if table is *NOT* created after ending transaction.
SELECT 1/0;"""
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
@@ -541,7 +574,8 @@ SELECT 1/0;"""
END;"""
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
@@ -560,7 +594,8 @@ END;"""
SELECT relname FROM pg_class
WHERE relkind IN ('r','s','t') and relnamespace = 2200::oid;"""
self.page.fill_codemirror_area_with(query)
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Data Output')
@@ -584,10 +619,12 @@ SELECT 1, pg_sleep(300)"""
self.page.fill_codemirror_area_with(query)
- query_op = self.page.find_by_id("btn-query-dropdown")
+ query_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_query_dropdown)
query_op.click()
- auto_rollback_btn = self.page.find_by_id("btn-auto-rollback")
+ auto_rollback_btn = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_auto_commit)
auto_rollback_check = auto_rollback_btn.find_element_by_tag_name("i")
@@ -600,7 +637,8 @@ SELECT 1, pg_sleep(300)"""
auto_rollback_check.get_attribute('class')):
auto_rollback_btn.click()
- auto_commit_btn = self.page.find_by_id("btn-auto-commit")
+ auto_commit_btn = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_auto_commit)
auto_commit_check = auto_commit_btn.find_element_by_tag_name("i")
@@ -615,10 +653,12 @@ SELECT 1, pg_sleep(300)"""
query_op.click()
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.find_by_xpath("//*[@id='fetching_data']")
- self.page.find_by_id("btn-cancel-query").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_cancel_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
self.page.find_by_xpath(
@@ -643,7 +683,8 @@ SELECT 1, pg_sleep(300)"""
print("\n\tListen on an event... ", file=sys.stderr, end="")
self.page.fill_codemirror_area_with("LISTEN foo;")
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Messages')
@@ -656,7 +697,8 @@ SELECT 1, pg_sleep(300)"""
print("\tNotify event without data... ", file=sys.stderr, end="")
self.page.fill_codemirror_area_with("NOTIFY foo;")
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Notifications')
@@ -670,7 +712,8 @@ SELECT 1, pg_sleep(300)"""
if self._supported_server_version():
self.page.fill_codemirror_area_with("SELECT pg_notify('foo', "
"'Hello')")
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Notifications')
@@ -707,22 +750,26 @@ SELECT 1, pg_sleep(300)"""
wait = WebDriverWait(self.page.driver, 10)
self.page.fill_codemirror_area_with("SET jit_above_cost=10;")
- self.page.find_by_id("btn-flash").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_execute_query).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self._clear_query_tool()
self.page.fill_codemirror_area_with("SELECT count(*) FROM pg_class;")
- explain_op = self.page.find_by_id("btn-explain-options-dropdown")
+ explain_op = self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_explain_options_dropdown)
explain_op.click()
# disable Explain options and auto rollback only if they are enabled.
- for op in ('explain-verbose', 'explain-costs', 'explain-analyze'):
- self.page.find_by_id("btn-{}".format(op)).click()
+ for op in (QueryToolLocatorsCss.btn_explain_verbose,
+ QueryToolLocatorsCss.btn_explain_costs):
+ self.page.find_by_css_selector(op).click()
explain_op.click()
- self.page.find_by_id("btn-explain-analyze").click()
+ self.page.find_by_css_selector(
+ QueryToolLocatorsCss.btn_explain_analyze).click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Data Output')
diff --git a/web/pgadmin/feature_tests/view_data_dml_queries.py b/web/pgadmin/feature_tests/view_data_dml_queries.py
index 1be9dcfa..3c00d571 100644
--- a/web/pgadmin/feature_tests/view_data_dml_queries.py
+++ b/web/pgadmin/feature_tests/view_data_dml_queries.py
@@ -109,7 +109,7 @@ CREATE TABLE public.defaults_{0}
for cnt in (1, 2):
self.page.select_tree_item('defaults_{0}'.format(str(cnt)))
# Open Object -> View/Edit data
- self._view_data_grid()
+ self._view_data_grid('defaults_{0}'.format(str(cnt)))
self.page.wait_for_query_tool_loading_indicator_to_disappear()
# Run test to insert a new row in table with default values
@@ -214,7 +214,7 @@ CREATE TABLE public.defaults_{0}
self.page.toggle_open_tree_item('public')
self.page.toggle_open_tree_item('Tables')
- def _view_data_grid(self):
+ def _view_data_grid(self, table_name):
self.page.driver.find_element_by_link_text("Object").click()
ActionChains(
self.page.driver
@@ -224,7 +224,8 @@ CREATE TABLE public.defaults_{0}
self.page.find_by_partial_link_text("All Rows").click()
time.sleep(1)
# wait until datagrid frame is loaded.
- self.page.click_tab('Edit Data -')
+
+ self.page.click_tab(table_name)
self.wait.until(
EC.visibility_of_element_located(
@@ -309,6 +310,7 @@ CREATE TABLE public.defaults_{0}
if (idx != 1 and not is_new_row) or is_new_row:
self.assertEquals(element.text, config_data[str(idx)][1])
+ self.assertEquals(element.text, config_data[str(idx)][1])
# scroll browser back to the left
# to reset position so other assertions can succeed
diff --git a/web/pgadmin/feature_tests/xss_checks_panels_and_query_tool_test.py b/web/pgadmin/feature_tests/xss_checks_panels_and_query_tool_test.py
index 27ac8c2c..8175bf9f 100644
--- a/web/pgadmin/feature_tests/xss_checks_panels_and_query_tool_test.py
+++ b/web/pgadmin/feature_tests/xss_checks_panels_and_query_tool_test.py
@@ -52,13 +52,21 @@ class CheckForXssFeatureTest(BaseFeatureTest):
self._check_xss_in_browser_tree()
self._check_xss_in_properties_tab()
self._check_xss_in_sql_tab()
+
+ # sometime the tab for dependent does not show info, so refreshing
+ # the page and then again collapsing until the table node
+ self.page.refresh_page()
+ self.page.toggle_open_servers_group()
+ self._tables_node_expandable()
self._check_xss_in_dependents_tab()
# Query tool
+ self.page.open_query_tool()
self._check_xss_in_query_tool()
self.page.close_query_tool()
# Explain module
+ self.page.open_query_tool()
self._check_xss_in_explain_module()
self.page.close_query_tool()
@@ -125,6 +133,7 @@ class CheckForXssFeatureTest(BaseFeatureTest):
# Create any constraint with xss name to test this
def _check_xss_in_dependents_tab(self):
+
print(
"\n\tChecking the Dependents tab for the XSS",
file=sys.stderr, end=""
@@ -142,17 +151,11 @@ class CheckForXssFeatureTest(BaseFeatureTest):
"Dependents tab (BackGrid)"
)
- def _open_query_tool(self):
- self.page.driver.find_element_by_link_text("Tools").click()
- self.page.find_by_partial_link_text("Query Tool").click()
- self.page.click_tab('Query -')
-
def _check_xss_in_query_tool(self):
print(
"\n\tChecking the SlickGrid cell for the XSS",
file=sys.stderr, end=""
)
- self._open_query_tool()
self.page.fill_codemirror_area_with(
"select '<img src=\"x\" onerror=\"console.log(1)\">'"
)
@@ -179,14 +182,10 @@ class CheckForXssFeatureTest(BaseFeatureTest):
"\n\tChecking the Graphical Explain plan for the XSS ...",
file=sys.stderr, end=""
)
- self._open_query_tool()
self.page.fill_codemirror_area_with(
'select * from "{0}"'.format(self.test_table_name)
)
- query_op = self.page.find_by_id("btn-query-dropdown")
- query_op.click()
-
self.page.find_by_id("btn-explain").click()
self.page.wait_for_query_tool_loading_indicator_to_disappear()
self.page.click_tab('Explain')
diff --git a/web/pgadmin/tools/datagrid/static/js/datagrid.js b/web/pgadmin/tools/datagrid/static/js/datagrid.js
index 0a795fab..4ed072b6 100644
--- a/web/pgadmin/tools/datagrid/static/js/datagrid.js
+++ b/web/pgadmin/tools/datagrid/static/js/datagrid.js
@@ -54,14 +54,7 @@ define('pgadmin.datagrid', [
self.preferences = pgBrowser.get_preferences_for_module('sqleditor');
});
- this.spinner_el =
- `<div class="pg-sp-container">
- <div class="pg-sp-content">
- <div class="row">
- <div class="col-12 pg-sp-icon"></div>
- </div>
- </div>
- </div>`;
+
// Define list of nodes on which view data option appears
var supported_nodes = [
'table', 'view', 'mview',
@@ -525,17 +518,26 @@ define('pgadmin.datagrid', [
var openQueryToolURL = function(j) {
// add spinner element
- $(j).data('embeddedFrame').$container.append(pgAdmin.DataGrid.spinner_el);
- setTimeout(function() {
+ let $spinner_el =
+ $(`<div class="pg-sp-container">
+ <div class="pg-sp-content">
+ <div class="row">
+ <div class="col-12 pg-sp-icon"></div>
+ </div>
+ </div>
+ </div>`).appendTo($(j).data('embeddedFrame').$container);
+
+ let init_poller_id = setInterval(function() {
var frameInitialized = $(j).data('frameInitialized');
if (frameInitialized) {
+ clearInterval(init_poller_id);
var frame = $(j).data('embeddedFrame');
if (frame) {
+ frame.onLoaded(()=>{
+ $spinner_el.remove();
+ });
frame.openURL(baseUrl);
- frame.$container.find('.pg-sp-container').delay(1000).hide(1);
}
- } else {
- openQueryToolURL(j);
}
}, 100);
};
diff --git a/web/pgadmin/utils/route.py b/web/pgadmin/utils/route.py
index e67f0195..b206cb2e 100644
--- a/web/pgadmin/utils/route.py
+++ b/web/pgadmin/utils/route.py
@@ -53,7 +53,7 @@ class TestsGeneratorRegistry(ABCMeta):
ABCMeta.__init__(cls, name, bases, d)
@classmethod
- def load_generators(cls, pkg_root, exclude_pkgs):
+ def load_generators(cls, pkg_root, exclude_pkgs, for_modules=[]):
cls.registry = dict()
@@ -61,6 +61,13 @@ class TestsGeneratorRegistry(ABCMeta):
all_modules += find_modules(pkg_root, False, True)
+ # If specific modules are to be tested, exclude others
+ if len(for_modules) > 0:
+ all_modules = [module_name
+ for module_name in all_modules
+ for fmod in for_modules
+ if module_name.endswith(fmod)]
+
# Check for SERVER mode
for module_name in all_modules:
try:
diff --git a/web/regression/README b/web/regression/README
index 7e668cfd..6a68d36f 100644
--- a/web/regression/README
+++ b/web/regression/README
@@ -167,6 +167,14 @@ Python Tests:
Example 2) Run test framework for 'database' node
run 'python runtests.py --pkg browser.server_groups.servers.databases.tests'
+- Execute test framework for certain modules of a test pkg
+
+ Example 1) Run test framework for 'sqleditor' package and test_start_running_query module
+ run 'python runtests.py --pkg tools.sqleditor --modules test_start_running_query'
+
+ Example 2) Run test framework for 'sqleditor' package and test_start_running_query,test_query_tool_fs_utils modules
+ run 'python runtests.py --pkg tools.sqleditor --modules test_start_running_query,test_query_tool_fs_utils'
+
- Exclude a package and its subpackages when running tests:
Example: exclude feature tests but run all others:
diff --git a/web/regression/feature_utils/pgadmin_page.py b/web/regression/feature_utils/pgadmin_page.py
index 0c8f0fa3..72fbd356 100644
--- a/web/regression/feature_utils/pgadmin_page.py
+++ b/web/regression/feature_utils/pgadmin_page.py
@@ -10,7 +10,8 @@
import time
from selenium.common.exceptions import NoSuchElementException, \
- WebDriverException, TimeoutException, NoSuchWindowException
+ WebDriverException, TimeoutException, NoSuchWindowException, \
+ StaleElementReferenceException
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
@@ -93,7 +94,6 @@ class PgadminPage:
self.enable_menu_item(query_tool, 10)
self.find_by_partial_link_text("Query Tool").click()
- self.click_tab('Query -')
def enable_menu_item(self, menu_item, wait_time):
start_time = time.time()
@@ -110,11 +110,10 @@ class PgadminPage:
else:
assert False, "'Tools -> Query Tool' menu did not enable."
- def close_query_tool(self, name="Query", prompt=True):
+ def close_query_tool(self, prompt=True):
self.driver.switch_to.default_content()
tab = self.find_by_xpath(
- "//*[contains(@class,'wcPanelTab') and "
- "contains(.,'" + name + "')]")
+ "//div[@class='wcPanelTab wcPanelTabActive']")
ActionChains(self.driver).context_click(tab).perform()
self.find_by_xpath(
"//li[contains(@class, 'context-menu-item')]/span[contains(text(),"
@@ -149,18 +148,37 @@ class PgadminPage:
def select_tree_item(self, tree_item_text):
item = self.find_by_xpath(
- "//*[@id='tree']//*[.='" + tree_item_text +
- "' and @class='aciTreeItem']")
+ "//*[@id='tree']//*[contains(text(), '" + tree_item_text + "')]"
+ "/parent::span[@class='aciTreeItem']")
self.driver.execute_script("arguments[0].scrollIntoView()", item)
item.click()
- def toggle_open_tree_item(self, tree_item_text):
- item = self.find_by_xpath(
- "//*[@id='tree']//*[.='" + tree_item_text +
- "']/../*[@class='aciTreeButton']")
+ def toggle_open_servers_group(self):
+ """This will open Servers group to display underlying nodes"""
+ self.wait_for_spinner_to_disappear()
+ server_group = self.find_by_xpath(
+ "//div[@id='tree']//span[@class='aciTreeItem']"
+ "/span[(@class='aciTreeText') and starts-with(text(),'Servers ') "
+ "or starts-with(text(), 'Servers')]")
+ ActionChains(self.driver).double_click(server_group).perform()
- self.driver.execute_script("arguments[0].scrollIntoView()", item)
- item.click()
+ def toggle_open_tree_item(self, tree_item_text):
+ # 'sleep' here helps in cases where underlying nodes are auto opened.
+ # Otherwise, encountered situations where False value is returned
+ # even if the underlying node to be clicked was Opened.
+ time.sleep(.3)
+ item_with_text = self.find_by_xpath(
+ "//div[@id='tree']//span[@class='aciTreeItem']/span["
+ "(@class='aciTreeText') and text()='" + tree_item_text + "']")
+
+ self.driver.execute_script("arguments[0].scrollIntoView()",
+ item_with_text)
+ if item_with_text.find_element_by_xpath(
+ ".//ancestor::*[@class='aciTreeLine']").get_attribute(
+ "aria-expanded") == 'false':
+ item = item_with_text.find_element_by_xpath(
+ ".//parent::*[@class='aciTreeItem']")
+ ActionChains(self.driver).double_click(item).perform()
def toggle_open_server(self, tree_item_text):
def check_for_password_dialog_or_tree_open(driver):
@@ -224,38 +242,103 @@ class PgadminPage:
"clicking the element not to throw an exception", click_succeeded
)
- def fill_input_by_field_name(self, field_name, field_content):
- field = self.find_by_xpath("//input[@name='" + field_name + "']")
- backspaces = [Keys.BACKSPACE] * len(field.get_attribute('value'))
+ def js_send_key(self, field, sele_key):
+ keycode = None
+
+ if sele_key in (Keys.RETURN, Keys.ENTER):
+ keycode = 13
+ elif sele_key == Keys.ARROW_DOWN:
+ keycode = 40
+ self.driver.execute_script(
+ "arguments[0].dispatchEvent(new KeyboardEvent('keydown', "
+ "{'keyCode':arguments[1], 'which':arguments[1]}));"
+ "arguments[0].dispatchEvent(new KeyboardEvent('keypress', "
+ "{'keyCode':arguments[1], 'which':arguments[1]}));"
+ "arguments[0].dispatchEvent(new KeyboardEvent('keyup', "
+ "{'keyCode':arguments[1], 'which':arguments[1]}));"
+ "arguments[0].dispatchEvent(new Event('input'));"
+ "arguments[0].dispatchEvent(new Event('change'));",
+ field, keycode)
+
+ def js_loose_focus(self, field):
+ self.driver.execute_script(
+ "arguments[0].dispatchEvent(new Event('blur'));", field)
+
+ def fill_input(self, field, field_content, input_keys=False,
+ key_after_input=Keys.ARROW_DOWN):
field.click()
- field.send_keys(backspaces)
- field.send_keys(str(field_content))
- self.wait_for_input_field_content(field_name, field_content)
- def fill_codemirror_area_with(self, field_content):
+ # Use send keys if input_keys true, else use javascript to set content
+ if input_keys:
+ backspaces = [Keys.BACKSPACE] * len(field.get_attribute('value'))
+ field.send_keys(backspaces)
+ field.send_keys(str(field_content))
+ self.wait_for_input_by_element(field, field_content)
+ else:
+ self.driver.execute_script("arguments[0].value = arguments[1]",
+ field, field_content)
+ # keycode 40 is for arrow down
+ self.js_send_key(field, Keys.ARROW_DOWN)
+
+ if key_after_input:
+ self.js_send_key(field, key_after_input)
+
+ def fill_input_by_field_name(self, field_name, field_content,
+ input_keys=False,
+ key_after_input=Keys.ARROW_DOWN,
+ loose_focus=False):
+ field = self.find_by_css_selector(
+ "input[name='" + field_name + "']:not(:disabled)")
+ self.fill_input(field, field_content, input_keys=input_keys,
+ key_after_input=key_after_input)
+
+ if loose_focus:
+ self.js_loose_focus(field)
+
+ def fill_input_by_css_selector(self, css_selector, field_content,
+ input_keys=False,
+ key_after_input=Keys.ARROW_DOWN,
+ loose_focus=False):
+ field = self.find_by_css_selector(css_selector)
+ self.fill_input(field, field_content, input_keys=input_keys,
+ key_after_input=key_after_input)
+
+ if loose_focus:
+ self.js_loose_focus(field)
+
+ def fill_codemirror_area_with(self, field_content, input_keys=False):
def find_codemirror(driver):
try:
driver.switch_to.default_content()
driver.switch_to_frame(
driver.find_element_by_tag_name("iframe"))
- element = driver.find_element_by_xpath(
- "//pre[contains(@class,'CodeMirror-line')]/../../../"
- "*[contains(@class,'CodeMirror-code')]")
+ element = driver.find_element_by_css_selector(
+ "#output-panel .CodeMirror")
if element.is_displayed() and element.is_enabled():
return element
except (NoSuchElementException, WebDriverException):
return False
+ codemirror_ele = WebDriverWait(
+ self.driver, timeout=self.timeout, poll_frequency=0.01)\
+ .until(find_codemirror,
+ "Timed out waiting for codemirror to appear")
+
time.sleep(1)
- WebDriverWait(self.driver, timeout=self.timeout, poll_frequency=0.01).\
- until(find_codemirror, "Timed out waiting for codemirror "
- "to appear").click()
- time.sleep(1)
+ codemirror_ele.click()
- action = ActionChains(self.driver)
- action.send_keys(field_content)
- action.perform()
+ # Use send keys if input_keys true, else use javascript to set content
+ if input_keys:
+ action = ActionChains(self.driver)
+ action.send_keys(field_content)
+ action.perform()
+ else:
+ self.driver.execute_script(
+ "arguments[0].CodeMirror.setValue(arguments[1]);"
+ "arguments[0].CodeMirror.setCursor("
+ "arguments[0].CodeMirror.lineCount(),0);",
+ codemirror_ele, field_content)
def click_tab(self, tab_name):
WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable(
@@ -269,7 +352,15 @@ class PgadminPage:
self.click_element(tab)
- def wait_for_input_field_content(self, field_name, content):
+ def wait_for_input_by_element(self, element, content):
+ def input_field_has_content(driver):
+ return str(content) == element.get_attribute('value')
+
+ return self._wait_for(
+ "field to contain '" + str(content) + "'", input_field_has_content
+ )
+
+ def wait_for_input_field_content(self, field_name, content, wait=1):
def input_field_has_content(driver):
element = driver.find_element_by_xpath(
"//input[@name='" + field_name + "']")
@@ -277,8 +368,8 @@ class PgadminPage:
return str(content) == element.get_attribute('value')
return self._wait_for(
- "field to contain '" + str(content) + "'", input_field_has_content
- )
+ "field to contain '" + str(content) + "'", input_field_has_content,
+ wait)
def wait_for_element(self, find_method_with_args):
def element_if_it_exists(driver):
@@ -286,7 +377,7 @@ class PgadminPage:
element = find_method_with_args(driver)
if element.is_displayed() and element.is_enabled():
return True
- except NoSuchElementException:
+ except (NoSuchElementException, StaleElementReferenceException):
return False
self._wait_for("element to exist", element_if_it_exists)
@@ -329,10 +420,10 @@ class PgadminPage:
def wait_for_query_tool_loading_indicator_to_disappear(self):
def spinner_has_disappeared(driver):
try:
- driver.find_element_by_xpath(
- "//*[@id='fetching_data' and @class='hide']"
+ spinner = driver.find_element_by_css_selector(
+ "#editor-panel .pg-sp-container"
)
- return False
+ return "d-none" in spinner.get_attribute("class")
except NoSuchElementException:
# wait for loading indicator disappear animation to complete.
time.sleep(0.5)
diff --git a/web/regression/requirements.txt b/web/regression/requirements.txt
index 5199d32d..9093a3d0 100644
--- a/web/regression/requirements.txt
+++ b/web/regression/requirements.txt
@@ -16,7 +16,7 @@ python-mimeparse==1.6.0
testscenarios==0.5.0
testtools==2.3.0
traceback2==1.4.0
-selenium==3.11.0
+selenium==3.14.0
###############################################################
# Modules specifically required for Python3.3 or lesser version
@@ -25,4 +25,4 @@ mock===2.0.0; python_version < '3.3'
# Leave this at the end because there is a bug where the '--install-option'
# is applied to all subsequent requirements
-chromedriver_installer==0.0.6 --install-option='--chromedriver-version=2.45'
+chromedriver_installer==0.0.6 --install-option='--chromedriver-version=2.46'
diff --git a/web/regression/runtests.py b/web/regression/runtests.py
index 48d3749f..6f95370f 100644
--- a/web/regression/runtests.py
+++ b/web/regression/runtests.py
@@ -230,9 +230,14 @@ def get_test_modules(arguments):
if arguments['pkg'] is None or arguments['pkg'] == "all":
TestsGeneratorRegistry.load_generators('pgadmin', exclude_pkgs)
else:
+ for_modules = []
+ if arguments['modules'] is not None:
+ for_modules = arguments['modules'].split(',')
+
TestsGeneratorRegistry.load_generators('pgadmin.%s' %
arguments['pkg'],
- exclude_pkgs)
+ exclude_pkgs,
+ for_modules)
# Sort module list so that test suite executes the test cases sequentially
module_list = TestsGeneratorRegistry.registry.items()
@@ -263,6 +268,10 @@ def add_arguments():
'--default_browser',
help='Executes the feature test in specific browser'
)
+ parser.add_argument(
+ '--modules',
+ help='Executes the feature test for specific modules in pkg'
+ )
arg = parser.parse_args()
return arg
^ permalink raw reply [nested|flat] 4+ messages in thread
* Re: [pgAdmin4][RM3936] - Fixes for feature test due to changes in pgadmin4
@ 2019-02-25 11:47 Dave Page <[email protected]>
parent: Usman Muzaffar <[email protected]>
1 sibling, 0 replies; 4+ messages in thread
From: Dave Page @ 2019-02-25 11:47 UTC (permalink / raw)
To: Usman Muzaffar <[email protected]>; +Cc: pgadmin-hackers
Hi
Unfortunately this failed quite horribly. Here's the output, and I've
attached the log and screenshots.
Note that in addition to what you see, it also seemed to hang everytime on
the drop server confirmation dialogue.
pgAdmin 4 - Application Initialisation
======================================
=============Running the test cases for 'Regression - PG 9.6'=============
runTest
(pgadmin.feature_tests.browser_tool_bar_test.BrowserToolBarFeatureTest)
Browser tool bar feature testStarting pgAdmin 4. Please navigate to
http://127.0.0.1:43989 in your browser.
...
Query Tool ToolBar Button OK.
View Data ToolBar Button OK.
Filtered Rows ToolBar Button OK.
ok
runTest
(pgadmin.feature_tests.copy_selected_query_results_feature_test.CopySelectedQueryResultsFeatureTest)
Copy rows, column using button and keyboard shortcut ... ERROR
ERROR
runTest
(pgadmin.feature_tests.file_manager_test.CheckFileManagerFeatureTest)
File manager feature test ... Tests to check if File manager is vulnerable
to XSS... ERROR
ERROR
runTest
(pgadmin.feature_tests.keyboard_shortcut_test.KeyboardShortcutFeatureTest)
Test for keyboard shortcut ... Executing shortcut: File main menu...OK
Executing shortcut: Object main menu...OK
ok
runTest
(pgadmin.feature_tests.pg_datatype_validation_test.PGDataypeFeatureTest)
Test checks for PG data-types output ... ERROR
ERROR
runTest
(pgadmin.feature_tests.pg_utilities_backup_restore_test.PGUtilitiesBackupFeatureTest)
Test for PG utilities - Backup and Restore ... ERROR
ERROR
runTest
(pgadmin.feature_tests.pg_utilities_backup_restore_test.PGUtilitiesBackupFeatureTest)
Test for XSS in Backup and Restore ... ERROR
ERROR
runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for PG maintenance: database ... ERROR
ERROR
runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for PG maintenance: table ... ERROR
ERROR
runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for XSS in maintenance dialog ... ERROR
ERROR
runTest
(pgadmin.feature_tests.query_tool_auto_complete_tests.QueryToolAutoCompleteFeatureTest)
Query tool auto complete feature test ... ERROR
runTest (pgadmin.feature_tests.query_tool_journey_test.QueryToolJourneyTest)
Tests the path through the query tool ... ERROR
ERROR
runTest (pgadmin.feature_tests.query_tool_tests.QueryToolFeatureTest)
Query tool feature test ... ERROR
runTest (pgadmin.feature_tests.table_ddl_feature_test.TableDdlFeatureTest)
Test table DDL generation ... ERROR
ERROR
runTest (pgadmin.feature_tests.view_data_dml_queries.CheckForViewDataTest)
Validate Insert, Update operations in View/Edit data with given test data
... ERROR
ERROR
runTest
(pgadmin.feature_tests.xss_checks_panels_and_query_tool_test.CheckForXssFeatureTest)
Test XSS check for panels and query tool ... ERROR
ERROR
runTest
(pgadmin.feature_tests.xss_checks_pgadmin_debugger_test.CheckDebuggerForXssFeatureTest)
Tests to check if Debugger is vulnerable to XSS ... ERROR
ERROR
runTest
(pgadmin.feature_tests.xss_checks_roles_control_test.CheckRoleMembershipControlFeatureTest)
Tests to check if Role membership control is vulnerable to XSS ... ERROR
ERROR
======================================================================
ERROR: runTest
(pgadmin.feature_tests.copy_selected_query_results_feature_test.CopySelectedQueryResultsFeatureTest)
Copy rows, column using button and keyboard shortcut
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/copy_selected_query_results_feature_test.py",
line 42, in runTest
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.copy_selected_query_results_feature_test.CopySelectedQueryResultsFeatureTest)
Copy rows, column using button and keyboard shortcut
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/copy_selected_query_results_feature_test.py",
line 200, in after
self.page.close_query_tool()
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 119, in close_query_tool
"//li[contains(@class, 'context-menu-item')]/span[contains(text(),"
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py",
line 80, in click
self._execute(Command.CLICK_ELEMENT)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py",
line 628, in _execute
return self._parent.execute(command, params)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py",
line 320, in execute
self.error_handler.check_response(response)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py",
line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error:
Element <span>...</span> is not clickable at point (420, 76). Other element
would receive the click: <div class="ajs-header">...</div>
(Session info: chrome=72.0.3626.119)
(Driver info: chromedriver=2.46.628411
(3324f4c8be9ff2f70a05a30ebc72ffb013e1a71e),platform=Mac OS X 10.14.3 x86_64)
======================================================================
ERROR: runTest
(pgadmin.feature_tests.file_manager_test.CheckFileManagerFeatureTest)
File manager feature test
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/file_manager_test.py",
line 51, in runTest
self._navigate_to_query_tool()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/file_manager_test.py",
line 63, in _navigate_to_query_tool
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.file_manager_test.CheckFileManagerFeatureTest)
File manager feature test
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/file_manager_test.py",
line 45, in after
self.page.close_query_tool(False)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 119, in close_query_tool
"//li[contains(@class, 'context-menu-item')]/span[contains(text(),"
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py",
line 80, in click
self._execute(Command.CLICK_ELEMENT)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py",
line 628, in _execute
return self._parent.execute(command, params)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py",
line 320, in execute
self.error_handler.check_response(response)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py",
line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error:
Element <span>...</span> is not clickable at point (420, 76). Other element
would receive the click: <div class="ajs-header">...</div>
(Session info: chrome=72.0.3626.119)
(Driver info: chromedriver=2.46.628411
(3324f4c8be9ff2f70a05a30ebc72ffb013e1a71e),platform=Mac OS X 10.14.3 x86_64)
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_datatype_validation_test.PGDataypeFeatureTest)
Test checks for PG data-types output
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_datatype_validation_test.py",
line 130, in runTest
self._schema_node_expandable()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_datatype_validation_test.py",
line 141, in _schema_node_expandable
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_datatype_validation_test.PGDataypeFeatureTest)
Test checks for PG data-types output
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_datatype_validation_test.py",
line 137, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_backup_restore_test.PGUtilitiesBackupFeatureTest)
Test for PG utilities - Backup and Restore
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py",
line 58, in runTest
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_backup_restore_test.PGUtilitiesBackupFeatureTest)
Test for PG utilities - Backup and Restore
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py",
line 158, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_backup_restore_test.PGUtilitiesBackupFeatureTest)
Test for XSS in Backup and Restore
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py",
line 58, in runTest
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_backup_restore_test.PGUtilitiesBackupFeatureTest)
Test for XSS in Backup and Restore
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py",
line 158, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for PG maintenance: database
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 66, in runTest
self._open_maintenance_dialogue()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 73, in _open_maintenance_dialogue
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for PG maintenance: database
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 117, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for PG maintenance: table
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 66, in runTest
self._open_maintenance_dialogue()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 73, in _open_maintenance_dialogue
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for PG maintenance: table
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 117, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for XSS in maintenance dialog
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 66, in runTest
self._open_maintenance_dialogue()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 73, in _open_maintenance_dialogue
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitiesMaintenanceFeatureTest)
Test for XSS in maintenance dialog
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py",
line 117, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.query_tool_auto_complete_tests.QueryToolAutoCompleteFeatureTest)
Query tool auto complete feature test
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 45, in setUp
self.before()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_auto_complete_tests.py",
line 59, in before
self._locate_database_tree_node()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_auto_complete_tests.py",
line 159, in _locate_database_tree_node
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.query_tool_journey_test.QueryToolJourneyTest)
Tests the path through the query tool
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_journey_test.py",
line 39, in runTest
self._navigate_to_query_tool()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_journey_test.py",
line 176, in _navigate_to_query_tool
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.query_tool_journey_test.QueryToolJourneyTest)
Tests the path through the query tool
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_journey_test.py",
line 189, in after
self.page.close_query_tool()
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 119, in close_query_tool
"//li[contains(@class, 'context-menu-item')]/span[contains(text(),"
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py",
line 80, in click
self._execute(Command.CLICK_ELEMENT)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py",
line 628, in _execute
return self._parent.execute(command, params)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py",
line 320, in execute
self.error_handler.check_response(response)
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py",
line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error:
Element <span>...</span> is not clickable at point (420, 76). Other element
would receive the click: <div class="ajs-header">...</div>
(Session info: chrome=72.0.3626.119)
(Driver info: chromedriver=2.46.628411
(3324f4c8be9ff2f70a05a30ebc72ffb013e1a71e),platform=Mac OS X 10.14.3 x86_64)
======================================================================
ERROR: runTest (pgadmin.feature_tests.query_tool_tests.QueryToolFeatureTest)
Query tool feature test
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 45, in setUp
self.before()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_tests.py",
line 36, in before
self._locate_database_tree_node()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_tests.py",
line 151, in _locate_database_tree_node
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.table_ddl_feature_test.TableDdlFeatureTest)
Test table DDL generation
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/table_ddl_feature_test.py",
line 35, in runTest
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.table_ddl_feature_test.TableDdlFeatureTest)
Test table DDL generation
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/table_ddl_feature_test.py",
line 48, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.view_data_dml_queries.CheckForViewDataTest)
Validate Insert, Update operations in View/Edit data with given test data
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_data_dml_queries.py",
line 107, in runTest
self._tables_node_expandable()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_data_dml_queries.py",
line 211, in _tables_node_expandable
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.view_data_dml_queries.CheckForViewDataTest)
Validate Insert, Update operations in View/Edit data with given test data
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_data_dml_queries.py",
line 124, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.xss_checks_panels_and_query_tool_test.CheckForXssFeatureTest)
Test XSS check for panels and query tool
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_panels_and_query_tool_test.py",
line 51, in runTest
self._tables_node_expandable()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_panels_and_query_tool_test.py",
line 78, in _tables_node_expandable
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.xss_checks_panels_and_query_tool_test.CheckForXssFeatureTest)
Test XSS check for panels and query tool
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_panels_and_query_tool_test.py",
line 74, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.xss_checks_pgadmin_debugger_test.CheckDebuggerForXssFeatureTest)
Tests to check if Debugger is vulnerable to XSS
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py",
line 42, in runTest
self._function_node_expandable()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py",
line 52, in _function_node_expandable
self.page.toggle_open_tree_item('Databases')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.xss_checks_pgadmin_debugger_test.CheckDebuggerForXssFeatureTest)
Tests to check if Debugger is vulnerable to XSS
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py",
line 46, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
======================================================================
ERROR: runTest
(pgadmin.feature_tests.xss_checks_roles_control_test.CheckRoleMembershipControlFeatureTest)
Tests to check if Role membership control is vulnerable to XSS
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_roles_control_test.py",
line 37, in runTest
self._role_node_expandable()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_roles_control_test.py",
line 49, in _role_node_expandable
self.page.toggle_open_tree_item('Login/Group Roles')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 172, in toggle_open_tree_item
"(@class='aciTreeText') and text()='" + tree_item_text + "']")
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 212, in find_by_xpath
lambda driver: driver.find_element_by_xpath(xpath)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 383, in wait_for_element
self._wait_for("element to exist", element_if_it_exists)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
element to exist
======================================================================
ERROR: runTest
(pgadmin.feature_tests.xss_checks_roles_control_test.CheckRoleMembershipControlFeatureTest)
Tests to check if Role membership control is vulnerable to XSS
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 68, in tearDown
self.after()
File
"/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_checks_roles_control_test.py",
line 41, in after
self.page.remove_server(self.server)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 147, in remove_server
self.click_modal('OK')
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 63, in click_modal
self.click_element(modal_button)
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 242, in click_element
"clicking the element not to throw an exception", click_succeeded
File
"/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 458, in _wait_for
"Timed out waiting for " + waiting_for_message
File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Timed out waiting for
clicking the element not to throw an exception
----------------------------------------------------------------------
Ran 18 tests in 917.703s
FAILED (errors=30)
Traceback (most recent call last):
File "regression/runtests.py", line 450, in <module>
test_utils.drop_database(connection, test_db_name)
File
"/Users/dpage/git/pgadmin4/web/regression/python_test_utils/test_utils.py",
line 402, in drop_database
pg_cursor.execute('''DROP DATABASE "%s"''' % database_name)
psycopg2.OperationalError: database "acceptance_test_db58902" is being
accessed by other users
DETAIL: There is 1 other session using the database.
make: *** [check-feature] Error 1
(pgadmin4) dpage@hal:*~/git/pgadmin4*$
On Mon, Feb 25, 2019 at 10:09 AM Usman Muzaffar <
[email protected]> wrote:
> Hi Hackers,
>
> Please find here attached patch for the followings
> i) Fixes for the query tool related test cases, the tab name convention is
> changed which is catered in the patch.
> ii) The 'dependent' tab was not showing information until it is refreshed
> so handled it during automation(the issue was not reproducible manually).
> iii) New locator file is created to store locators/xpaths.
> iv) Changes in pgadmin_page file related to js.
>
>
> Patch by :
> Usman & Aditya([email protected])
>
> --
>
>
> Thanks,
>
> Usman Muzaffar
> QA Team
> EnterpriseDB Corporation
>
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachments:
[application/zip] Archive.zip (2.1M, 3-Archive.zip)
download
^ permalink raw reply [nested|flat] 4+ messages in thread
* RE: [pgAdmin4][RM3936] - Fixes for feature test due to changes in pgadmin4
@ 2019-06-04 15:03 Cleber da Silva <[email protected]>
parent: Usman Muzaffar <[email protected]>
1 sibling, 1 reply; 4+ messages in thread
From: Cleber da Silva @ 2019-06-04 15:03 UTC (permalink / raw)
To: Usman Muzaffar <[email protected]>; pgadmin-hackers
Morning, how are you guys?
Sorry, but I am no longer want to be part of this list. Could you, please, take off my e-mail address?
Bests,
--
Cleber
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986; for Windows 10
________________________________
From: Usman Muzaffar <[email protected]>
Sent: Monday, February 25, 2019 7:08:53 AM
To: pgadmin-hackers
Subject: [pgAdmin4][RM3936] - Fixes for feature test due to changes in pgadmin4
Hi Hackers,
Please find here attached patch for the followings
i) Fixes for the query tool related test cases, the tab name convention is changed which is catered in the patch.
ii) The 'dependent' tab was not showing information until it is refreshed so handled it during automation(the issue was not reproducible manually).
iii) New locator file is created to store locators/xpaths.
iv) Changes in pgadmin_page file related to js.
Patch by :
Usman & Aditya([email protected]<mailto:[email protected]>)
--
Thanks,
Usman Muzaffar
QA Team
EnterpriseDB Corporation
^ permalink raw reply [nested|flat] 4+ messages in thread
* Re: [pgAdmin4][RM3936] - Fixes for feature test due to changes in pgadmin4
@ 2019-06-05 08:27 Dave Page <[email protected]>
parent: Cleber da Silva <[email protected]>
0 siblings, 0 replies; 4+ messages in thread
From: Dave Page @ 2019-06-05 08:27 UTC (permalink / raw)
To: Cleber da Silva <[email protected]>; +Cc: Usman Muzaffar <[email protected]>; pgadmin-hackers
See https://www.pgadmin.org/support/list/ or the headers in every email on
the list for info on how to manage your subscription.
On Tue, Jun 4, 2019 at 4:03 PM Cleber da Silva <[email protected]> wrote:
> Morning, how are you guys?
>
> Sorry, but I am no longer want to be part of this list. Could you, please,
> take off my e-mail address?
>
>
>
> Bests,
>
>
>
> --
>
> Cleber
>
>
>
>
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986; for
> Windows 10
>
>
> ------------------------------
> *From:* Usman Muzaffar <[email protected]>
> *Sent:* Monday, February 25, 2019 7:08:53 AM
> *To:* pgadmin-hackers
> *Subject:* [pgAdmin4][RM3936] - Fixes for feature test due to changes in
> pgadmin4
>
> Hi Hackers,
>
> Please find here attached patch for the followings
> i) Fixes for the query tool related test cases, the tab name convention is
> changed which is catered in the patch.
> ii) The 'dependent' tab was not showing information until it is refreshed
> so handled it during automation(the issue was not reproducible manually).
> iii) New locator file is created to store locators/xpaths.
> iv) Changes in pgadmin_page file related to js.
>
>
> Patch by :
> Usman & Aditya([email protected])
>
> --
>
>
> Thanks,
>
> Usman Muzaffar
> QA Team
> EnterpriseDB Corporation
>
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
^ permalink raw reply [nested|flat] 4+ messages in thread
end of thread, other threads:[~2019-06-05 08:27 UTC | newest]
Thread overview: 4+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2019-02-25 10:08 [pgAdmin4][RM3936] - Fixes for feature test due to changes in pgadmin4 Usman Muzaffar <[email protected]>
2019-02-25 11:47 ` Dave Page <[email protected]>
2019-06-04 15:03 ` Cleber da Silva <[email protected]>
2019-06-05 08:27 ` Dave Page <[email protected]>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox