Re: [pgadmin-hackers] Re: Server side cursor limitations for ondemand loading of data in query tool [RM2137] [pgAdmin4]

Поиск
Список
Период
Сортировка
От Harshal Dhumal
Тема Re: [pgadmin-hackers] Re: Server side cursor limitations for ondemand loading of data in query tool [RM2137] [pgAdmin4]
Дата
Msg-id CAFiP3vzQQ8MxzSGuYcOPR9cDRRdz06LuLuGKo3cnTWXNcgFrew@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgadmin-hackers] Re: Server side cursor limitations for on demand loading of data in query tool [RM2137] [pgAdmin4]  (Dave Page <dpage@pgadmin.org>)
Ответы Re: [pgadmin-hackers] Re: Server side cursor limitations for ondemand loading of data in query tool [RM2137] [pgAdmin4]  (Dave Page <dpage@pgadmin.org>)
Список pgadmin-hackers
Hi Dave,

Please find attached updated patch.

On Thu, Jun 15, 2017 at 3:58 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Wed, Jun 14, 2017 at 11:36 PM, Harshal Dhumal <harshal.dhumal@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.
 
and


======================================================================
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

Вложения

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: pgAdmin 4 Jenkins
Дата:
Сообщение: [pgadmin-hackers] Jenkins build is back to normal : pgadmin4-master-python34 #171
Следующее
От: Dave Page
Дата:
Сообщение: Re: [pgadmin-hackers] Re: Server side cursor limitations for ondemand loading of data in query tool [RM2137] [pgAdmin4]