Hi Dave,

Please find attached patch where I have added timeout of 2 seconds before
selecting object menu in connect to server function.

Note: Apply this patch on top of previous patch for on demand loading
feature.


-- 
*Harshal Dhumal*
*Sr. Software Engineer*

EnterpriseDB India: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On Fri, Jun 16, 2017 at 2:25 AM, Dave Page <dp...@pgadmin.org> wrote:

> Sounds good, thanks.
>
> On Thu, Jun 15, 2017 at 9:54 PM, Harshal Dhumal
> <harshal.dhu...@enterprisedb.com> wrote:
> > Hi
> >
> > On Fri, Jun 16, 2017 at 2:07 AM, Dave Page <dp...@pgadmin.org> wrote:
> >>
> >> Hi
> >>
> >> On Thu, Jun 15, 2017 at 9:30 PM, Harshal Dhumal
> >> <harshal.dhu...@enterprisedb.com> wrote:
> >> > Hi Dave,
> >> >
> >> > Please find attached updated patch.
> >> >
> >> > On Thu, Jun 15, 2017 at 3:58 PM, Dave Page <dp...@pgadmin.org> wrote:
> >> >>
> >> >> Hi
> >> >>
> >> >> On Wed, Jun 14, 2017 at 11:36 PM, Harshal Dhumal
> >> >> <harshal.dhu...@enterprisedb.com> wrote:
> >> >>>
> >> >>> Hi Dave,
> >> >>>
> >> >>> Please find rebased patch for RM2137.
> >> >>
> >> >>
> >> >> Looking very good. The only issues I see are:
> >> >>
> >> >> - The row headers should auto-size such that they can display the row
> >> >> numbers if the last row was displayed. E.g. if there are 12345 rows
> in
> >> >> total, then the row header should be sized to display 5 digits.
> >> >>
> >> > Fixed.
> >> >
> >> >
> >> >>
> >> >> - The tests are comprehensive, which is awesome. However, every time
> I
> >> >> ran
> >> >> them, at least one of the feature tests failed. Unfortunately, it
> was a
> >> >> different one each time. In the last two runs, I got:
> >> >>
> >> >>  ============================================================
> ==========
> >> >> 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 40, in setUp
> >> >>     self.before()
> >> >>   File
> >> >>
> >> >> "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/
> query_tool_tests.py",
> >> >> line 40, in before
> >> >>     self._connects_to_server()
> >> >>   File
> >> >>
> >> >> "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/
> query_tool_tests.py",
> >> >> line 144, in _connects_to_server
> >> >>     self.page.driver.find_element_by_link_text("Create"))\
> >> >>   File
> >> >>
> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py",
> >> >> line 319, in find_element_by_link_text
> >> >>     return self.find_element(by=By.LINK_TEXT, value=link_text)
> >> >>   File
> >> >>
> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py",
> >> >> line 756, in find_element
> >> >>     'value': value})['value']
> >> >>   File
> >> >>
> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py",
> >> >> line 238, in execute
> >> >>     self.error_handler.check_response(response)
> >> >>   File
> >> >>
> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/errorhandler.py",
> >> >> line 193, in check_response
> >> >>     raise exception_class(message, screen, stacktrace)
> >> >> NoSuchElementException: Message: no such element: Unable to locate
> >> >> element: {"method":"link text","selector":"Create"}
> >> >>   (Session info: chrome=58.0.3029.110)
> >> >>   (Driver info: chromedriver=2.29.461585
> >> >> (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac OS X 10.12.3
> >> >> x86_64)
> >> >>
> >> > I checked code from _connects_to_server function which is common in
> all
> >> > features test cases. I didn't find anything wrong with this. If there
> is
> >> > a
> >> > bug in this function then all feature test must fail.
> >> > Let me know if you are getting failure consistently in
> >> > _connects_to_server
> >> > function.
> >>
> >> I wondered if that one is a race condition. Do we need a short delay
> >> before clicking the Object menu? I have seen this occasionally before.
> >
> >
> > OK. In that case let's try putting 1-2 second delay and observer
> behaviour.
> > I'll send separate patch for this tomorrow as this is not related to on
> > demand query result feature or its test cases.
> >
> >>
> >>
> >> >>
> >> >>
> >> >> ============================================================
> ==========
> >> >> ERROR: runTest
> >> >> (pgadmin.feature_tests.query_tool_tests.QueryToolFeatureTest)
> >> >> Query tool feature test
> >> >> ------------------------------------------------------------
> ----------
> >> >> Traceback (most recent call last):
> >> >>   File
> >> >>
> >> >> "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/
> query_tool_tests.py",
> >> >> line 119, in runTest
> >> >>     self._query_tool_auto_rollback_enabled()
> >> >>   File
> >> >>
> >> >> "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/
> query_tool_tests.py",
> >> >> line 697, in _query_tool_auto_rollback_enabled
> >> >>     '//div[contains(@class, "sql-editor-message") and
> >> >> contains(string(),
> >> >> "COMMIT")]'
> >> >>   File
> >> >>
> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py",
> >> >> line 295, in find_element_by_xpath
> >> >>     return self.find_element(by=By.XPATH, value=xpath)
> >> >>   File
> >> >>
> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py",
> >> >> line 756, in find_element
> >> >>     'value': value})['value']
> >> >>   File
> >> >>
> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py",
> >> >> line 238, in execute
> >> >>     self.error_handler.check_response(response)
> >> >>   File
> >> >>
> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/errorhandler.py",
> >> >> line 193, in check_response
> >> >>     raise exception_class(message, screen, stacktrace)
> >> >> NoSuchElementException: Message: no such element: Unable to locate
> >> >> element: {"method":"xpath","selector":"//div[contains(@class,
> >> >> "sql-editor-message") and contains(string(), "COMMIT")]"}
> >> >>   (Session info: chrome=58.0.3029.110)
> >> >>   (Driver info: chromedriver=2.29.461585
> >> >> (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac OS X 10.12.3
> >> >> x86_64)
> >> >>
> >> > I have updated Auto rollback enabled test in this patch.
> >> >
> >> >>
> >> >> Relevant screenshots attached.
> >> >>
> >> >> - Can you tidy up the regression output a little please? Instead of:
> >> >>
> >> >> -------
> >> >> runTest (pgadmin.feature_tests.query_tool_tests.
> QueryToolFeatureTest)
> >> >> Query tool feature test ... On demand result set on scrolling...
> >> >> OK.
> >> >>
> >> >> On demand result set on grid select all...
> >> >> OK.
> >> >>
> >> >> On demand result set on column select all...
> >> >> OK.
> >> >>
> >> >> Explain query...
> >> >> OK.
> >> >>
> >> >> Explain query with verbose...
> >> >> OK.
> >> >>
> >> >> Explain query with costs...
> >> >> OK.
> >> >>
> >> >> Explain analyze query...
> >> >> OK.
> >> >>
> >> >> Explain analyze query with buffers...
> >> >> OK.
> >> >>
> >> >> Explain analyze query with timing...
> >> >> OK.
> >> >>
> >> >> Auto commit disabled...
> >> >> OK.
> >> >>
> >> >> Auto commit enabled...
> >> >> OK.
> >> >>
> >> >> Auto rollback enabled...
> >> >> ERROR
> >> >> -------
> >> >>
> >> >> Something like:
> >> >>
> >> >> -------
> >> >> runTest (pgadmin.feature_tests.query_tool_tests.
> QueryToolFeatureTest)
> >> >> Query tool feature test ...
> >> >> On demand result set on scrolling... OK.
> >> >> On demand result set on grid select all... OK.
> >> >> On demand result set on column select all... OK.
> >> >> Explain query... OK.
> >> >> Explain query with verbose... OK.
> >> >> Explain query with costs... OK.
> >> >> Explain analyze query... OK.
> >> >> Explain analyze query with buffers... OK.
> >> >> Explain analyze query with timing... OK.
> >> >> Auto commit disabled... OK.
> >> >> Auto commit enabled... OK.
> >> >> Auto rollback enabled... ERROR
> >> >> --------
> >> >>
> >> > Fixed.
> >> >
> >> >
> >> >>
> >> >> Thanks!
> >> >>
> >> >> --
> >> >> Dave Page
> >> >> Blog: http://pgsnake.blogspot.com
> >> >> Twitter: @pgsnake
> >> >>
> >> >> EnterpriseDB UK: http://www.enterprisedb.com
> >> >> The Enterprise PostgreSQL Company
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Dave Page
> >> Blog: http://pgsnake.blogspot.com
> >> Twitter: @pgsnake
> >>
> >> EnterpriseDB UK: http://www.enterprisedb.com
> >> The Enterprise PostgreSQL Company
> >
> >
>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
diff --git a/web/pgadmin/feature_tests/connect_to_server_feature_test.py b/web/pgadmin/feature_tests/connect_to_server_feature_test.py
index e8de161..6bec4ac 100644
--- a/web/pgadmin/feature_tests/connect_to_server_feature_test.py
+++ b/web/pgadmin/feature_tests/connect_to_server_feature_test.py
@@ -7,6 +7,7 @@
 #
 ##########################################################################
 
+import time
 from selenium.webdriver import ActionChains
 
 import config as app_config
@@ -53,6 +54,7 @@ class ConnectsToServerFeatureTest(BaseFeatureTest):
 
     def _connects_to_server(self):
         self.page.find_by_xpath("//*[@class='aciTreeText' and .='Servers']").click()
+        time.sleep(2)
         self.page.driver.find_element_by_link_text("Object").click()
         ActionChains(self.page.driver) \
             .move_to_element(self.page.driver.find_element_by_link_text("Create")) \
diff --git a/web/pgadmin/feature_tests/pg_datatype_validation_test.py b/web/pgadmin/feature_tests/pg_datatype_validation_test.py
index b72f727..6b85848 100644
--- a/web/pgadmin/feature_tests/pg_datatype_validation_test.py
+++ b/web/pgadmin/feature_tests/pg_datatype_validation_test.py
@@ -6,6 +6,7 @@
 # This software is released under the PostgreSQL Licence
 #
 ##########################################################################
+import time
 from selenium.webdriver import ActionChains
 from selenium.common.exceptions import TimeoutException
 from selenium.webdriver.support.ui import WebDriverWait
@@ -56,6 +57,7 @@ class PGDataypeFeatureTest(BaseFeatureTest):
         self.page.find_by_xpath(
             "//*[@class='aciTreeText' and .='Servers']"
         ).click()
+        time.sleep(2)
         self.page.driver.find_element_by_link_text("Object").click()
         ActionChains(self.page.driver) \
             .move_to_element(
diff --git a/web/pgadmin/feature_tests/query_tool_tests.py b/web/pgadmin/feature_tests/query_tool_tests.py
index 1861599..c5817e3 100644
--- a/web/pgadmin/feature_tests/query_tool_tests.py
+++ b/web/pgadmin/feature_tests/query_tool_tests.py
@@ -138,6 +138,7 @@ class QueryToolFeatureTest(BaseFeatureTest):
     def _connects_to_server(self):
         self.page.find_by_xpath(
             "//*[@class='aciTreeText' and .='Servers']").click()
+        time.sleep(2)
         self.page.driver.find_element_by_link_text("Object").click()
         ActionChains(self.page.driver) \
             .move_to_element(
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 a0df44e..75b4222 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
@@ -75,6 +75,7 @@ class CheckForXssFeatureTest(BaseFeatureTest):
 
     def _connects_to_server(self):
         self.page.find_by_xpath("//*[@class='aciTreeText' and .='Servers']").click()
+        time.sleep(2)
         self.page.driver.find_element_by_link_text("Object").click()
         ActionChains(self.page.driver) \
             .move_to_element(self.page.driver.find_element_by_link_text("Create")) \
diff --git a/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py b/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py
index 094dfed..e847040 100644
--- a/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py
+++ b/web/pgadmin/feature_tests/xss_checks_pgadmin_debugger_test.py
@@ -42,6 +42,7 @@ class CheckDebuggerForXssFeatureTest(BaseFeatureTest):
 
     def _connects_to_server(self):
         self.page.find_by_xpath("//*[@class='aciTreeText' and .='Servers']").click()
+        time.sleep(2)
         self.page.driver.find_element_by_link_text("Object").click()
         ActionChains(self.page.driver) \
             .move_to_element(self.page.driver.find_element_by_link_text("Create")) \
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to