public inbox for [email protected]
help / color / mirror / Atom feedFrom: Yogesh Mahajan <[email protected]>
To: pgadmin-hackers <[email protected]>
Subject: Re: Feature Test Fix - React porting
Date: Thu, 18 Nov 2021 15:23:13 +0530
Message-ID: <CAMa=N=MyQWGD_YwRBRXKtEVq3B1wqwCDHcOjn88XLQm+dw-Hhw@mail.gmail.com> (raw)
In-Reply-To: <CANxoLDe_meHYN8DU4kc5p+6wpiKivSyyJLW26idD+7h7=wi+2A@mail.gmail.com>
References: <CAMa=N=M7TmEsEk0tD787z-obnN_805R4QyegZtFspjfddLKbug@mail.gmail.com>
<CANxoLDfH2YoCG1aVFPuzWCR95FTFgJczceH1Z-eFg2Oo24tzLA@mail.gmail.com>
<CAMa=N=Op8hASK9hRBfDXHiwrVsDn-NaH-0hUk+7gGF6L_80mHQ@mail.gmail.com>
<CANxoLDe_meHYN8DU4kc5p+6wpiKivSyyJLW26idD+7h7=wi+2A@mail.gmail.com>
Hi,
Please find the attached patch which fixes the problem related to
feature tests.
Thanks,
Yogesh Mahajan
EnterpriseDB
On Fri, Nov 12, 2021 at 11:59 AM Akshay Joshi <[email protected]>
wrote:
> Thanks, the patch applied.
>
> On Thu, Nov 11, 2021 at 10:04 PM Yogesh Mahajan <
> [email protected]> wrote:
>
>> Hi,
>>
>> Please find the attached patch which uses selenium 4.0.0a6 which works
>> with python 3.6.8.
>> Selenium 4.0.0 requires python 3.7+
>>
>> Thanks,
>> Yogesh Mahajan
>> EnterpriseDB
>>
>>
>> On Wed, Nov 10, 2021 at 11:59 AM Akshay Joshi <
>> [email protected]> wrote:
>>
>>> Thanks, the patch applied. but Jenkins is failing with the below error:
>>> ERROR: No matching distribution found for selenium==4.0.0
>>> ERROR: Failed to install Python requirements.
>>>
>>> On Tue, Nov 9, 2021 at 2:48 PM Yogesh Mahajan <
>>> [email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> Please find the attached patch which fixes feature tests broken due to
>>>> react porting changes.
>>>>
>>>> Thanks,
>>>> Yogesh Mahajan
>>>> EnterpriseDB
>>>>
>>>
>>>
>>> --
>>> *Thanks & Regards*
>>> *Akshay Joshi*
>>> *pgAdmin Hacker | Principal Software Architect*
>>> *EDB Postgres <http://edbpostgres.com>*
>>>
>>> *Mobile: +91 976-788-8246*
>>>
>>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
> *pgAdmin Hacker | Principal Software Architect*
> *EDB Postgres <http://edbpostgres.com>*
>
> *Mobile: +91 976-788-8246*
>
Attachments:
[application/octet-stream] Feature_Test_Fix_React_Porting_v3.patch (9.1K, 3-Feature_Test_Fix_React_Porting_v3.patch)
download | inline diff:
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 c990dbb98..f02c19a3d 100644
--- a/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py
+++ b/web/pgadmin/feature_tests/pg_utilities_backup_restore_test.py
@@ -88,7 +88,7 @@ class PGUtilitiesBackupFeatureTest(BaseFeatureTest):
NavMenuLocators.process_watcher_alertfier))
self.page.wait_for_element_to_disappear(
lambda driver: driver.find_element(
- By.CSS_SELECTOR, ".loading-logs"), 10)
+ By.CSS_SELECTOR, ".loading-logs"), 18)
expected_backup_success_msg = "Successfully completed."
self.assertEqual(status, expected_backup_success_msg)
@@ -157,18 +157,23 @@ class PGUtilitiesBackupFeatureTest(BaseFeatureTest):
os.remove(backup_file)
def after(self):
- test_gui_helper.close_process_watcher(self)
- test_gui_helper.close_bgprocess_popup(self)
- self.page.remove_server(self.server)
- connection = test_utils.get_db_connection(
- self.server['db'],
- self.server['username'],
- self.server['db_password'],
- self.server['host'],
- self.server['port'],
- self.server['sslmode']
- )
- test_utils.drop_database(connection, self.database_name)
+ try:
+ test_gui_helper.close_process_watcher(self)
+ test_gui_helper.close_bgprocess_popup(self)
+ self.page.remove_server(self.server)
+ except Exception as e:
+ print("PGUtilitiesBackupFeatureTest - "
+ "Exception occurred in after method")
+ finally:
+ connection = test_utils.get_db_connection(
+ self.server['db'],
+ self.server['username'],
+ self.server['db_password'],
+ self.server['host'],
+ self.server['port'],
+ self.server['sslmode']
+ )
+ test_utils.drop_database(connection, self.database_name)
def _check_detailed_window_for_xss(self, tool_name):
source_code = self.page.find_by_css_selector(
diff --git a/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py b/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py
index 481bf2cf2..e4be948f6 100644
--- a/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py
+++ b/web/pgadmin/feature_tests/pg_utilities_maintenance_test.py
@@ -165,19 +165,24 @@ class PGUtilitiesMaintenanceFeatureTest(BaseFeatureTest):
test_gui_helper.close_process_watcher(self)
def after(self):
- test_gui_helper.close_bgprocess_popup(self)
- test_utils.delete_table(self.server, self.database_name,
- self.table_name)
- self.page.remove_server(self.server)
- connection = test_utils.get_db_connection(
- self.server['db'],
- self.server['username'],
- self.server['db_password'],
- self.server['host'],
- self.server['port'],
- self.server['sslmode']
- )
- test_utils.drop_database(connection, self.database_name)
+ try:
+ test_gui_helper.close_bgprocess_popup(self)
+ test_utils.delete_table(self.server, self.database_name,
+ self.table_name)
+ self.page.remove_server(self.server)
+ except Exception as e:
+ print("PGUtilitiesMaintenanceFeatureTest - "
+ "Exception occurred in after method")
+ finally:
+ connection = test_utils.get_db_connection(
+ self.server['db'],
+ self.server['username'],
+ self.server['db_password'],
+ self.server['host'],
+ self.server['port'],
+ self.server['sslmode']
+ )
+ test_utils.drop_database(connection, self.database_name)
def check_escaped_characters(self, source_code, string_to_find, source):
# For XSS we need to search against element's html code
diff --git a/web/pgadmin/feature_tests/xss_checks_roles_control_test.py b/web/pgadmin/feature_tests/xss_checks_roles_control_test.py
index d51632386..2be688f69 100644
--- a/web/pgadmin/feature_tests/xss_checks_roles_control_test.py
+++ b/web/pgadmin/feature_tests/xss_checks_roles_control_test.py
@@ -82,7 +82,7 @@ class CheckRoleMembershipControlFeatureTest(BaseFeatureTest):
# Fetch the source code for our custom control
source_code = self.page.find_by_xpath(
"//span[contains(@class,'icon-')]/following-sibling::span"
- ).text
+ ).get_attribute('innerHTML')
self._check_escaped_characters(
source_code,
diff --git a/web/regression/feature_utils/pgadmin_page.py b/web/regression/feature_utils/pgadmin_page.py
index 11ccabf28..630d05ef6 100644
--- a/web/regression/feature_utils/pgadmin_page.py
+++ b/web/regression/feature_utils/pgadmin_page.py
@@ -431,7 +431,7 @@ class PgadminPage:
:param server_group_name: containing server
:param server_name:
:param server_password:
- :return: true if server node is expnaded else false
+ :return: true if server node is expanded else false
"""
server_expanded = False
server_node_xpath = TreeAreaLocators.server_node(server_name)
@@ -444,14 +444,14 @@ class PgadminPage:
self.driver.execute_script(
self.js_executor_scrollintoview_arg, server_node)
if self.check_if_element_exist_by_xpath(
- server_node_exp_status_xpath, 1):
+ server_node_exp_status_xpath, 2):
server_expanded = True
else:
server_expanded = self.click_expand_server_node(
server_name, server_password, server_node)
if not server_expanded:
print("(expand_server_node)The Server node is not "
- "expnaded", file=sys.stderr)
+ "expanded", file=sys.stderr)
else:
print("(expand_server_node)The Server node not found",
file=sys.stderr)
@@ -478,7 +478,8 @@ class PgadminPage:
webdriver.ActionChains(self.driver).double_click(
server_node).perform()
if self.check_if_element_exist_by_xpath(
- TreeAreaLocators.server_node_exp_status(server_name)):
+ TreeAreaLocators.server_node_exp_status(server_name),
+ 10):
server_node_expansion_status = True
else:
if self.click_and_connect_server(server_name, server_password):
@@ -586,7 +587,7 @@ class PgadminPage:
server_child_expanded = self.click_to_expand_tree_node(
child_node_ele, server_child_node_exp_status_xpath)
if not server_child_expanded:
- print("Child not is not expanded after clickng ",
+ print("Child not is not expanded after clicking ",
file=sys.stderr)
else:
print("The server/previous nodes not expanded", file=sys.stderr)
@@ -1293,7 +1294,8 @@ class PgadminPage:
top_el).perform()
r_scroll -= 1
else:
- print("check_if_element_exists_with_scroll > Element NOT found")
+ print("check_if_element_exists_with_scroll > Element NOT found",
+ xpath, file=sys.stderr)
return False
def find_by_xpath_list(self, xpath):
diff --git a/web/regression/python_test_utils/test_utils.py b/web/regression/python_test_utils/test_utils.py
index 541e8eff2..28aaaa6f6 100644
--- a/web/regression/python_test_utils/test_utils.py
+++ b/web/regression/python_test_utils/test_utils.py
@@ -1439,7 +1439,9 @@ def get_parallel_sequential_module_list(module_list):
"""
# list of files consisting tests that needs to be
# executed sequentially
- sequential_tests_file = []
+ sequential_tests_file = [
+ 'pgadmin.feature_tests.pg_utilities_backup_restore_test',
+ 'pgadmin.feature_tests.pg_utilities_maintenance_test']
# list of tests can be executed in parallel
parallel_tests = list(module_list)
diff --git a/web/regression/runtests.py b/web/regression/runtests.py
index 7bc2ca4d5..bbd03ca95 100644
--- a/web/regression/runtests.py
+++ b/web/regression/runtests.py
@@ -603,7 +603,8 @@ def run_parallel_tests(url_client, servers_details, parallel_tests_lists,
version_of_browser,
ser['name'])
# Launch client url in browser
- test_utils.launch_url_in_browser(driver_object, url_client)
+ test_utils.launch_url_in_browser(
+ driver_object, url_client, 60)
# Add name for thread
thread_name = "parallel_tests" + ser['name']
view thread (12+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: Feature Test Fix - React porting
In-Reply-To: <CAMa=N=MyQWGD_YwRBRXKtEVq3B1wqwCDHcOjn88XLQm+dw-Hhw@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox