Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dPtDa-0005TA-O0 for pgadmin-hackers@arkaria.postgresql.org; Tue, 27 Jun 2017 16:19:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dPtDZ-0000bx-Iu for pgadmin-hackers@arkaria.postgresql.org; Tue, 27 Jun 2017 16:19:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dPtDZ-0000bn-AT for pgadmin-hackers@lists.postgresql.org; Tue, 27 Jun 2017 16:19:57 +0000 Received: from mail-ua0-x230.google.com ([2607:f8b0:400c:c08::230]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dPtDS-0005Mo-9y for pgadmin-hackers@postgresql.org; Tue, 27 Jun 2017 16:19:56 +0000 Received: by mail-ua0-x230.google.com with SMTP id j53so21688498uaa.2 for ; Tue, 27 Jun 2017 09:19:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=mVNz2CDPVgQuS7JvTxzTQ2KNw/olIcP8aoq25voOd+E=; b=hBuTPKiwyl35PtMLucHaAX0gIGkCkuSA6pqYzE/OZm8/23KBxisb6SmUNW3XVOlBXk 8jXLWPScc3kViiGlXNcBeCYrZbEGstIrUx+TlDrsG4y/XizHLYy8RL9PDu1fiVoY28ye 7Xl1I0wSuwn7JGLuSedXIByrVJX4VCPm+VHFRfcVY7JHx2V2r0Sx2/9dahoB2ynwRUpa /iD0Qo9b4DiKgw6mNfiqkVuurI2hYnch7W0YMZTxD7YQNoeLKaV4BJaqTj+vEreJ6sl5 xtj83mpsHaO9c4/ECP89dEwzBAur2UXHH8JXrsbwbMkg+Qf+PH9NXR/KRi2T0DxHJbbK 3MAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=mVNz2CDPVgQuS7JvTxzTQ2KNw/olIcP8aoq25voOd+E=; b=b3LNRYQHzas78+z8pH7oV4VsOEhFK1bIXh0tWQnydF3biZVZcncJKiW2ywP4EQniGp f+DqMSf2JrD0U+9NtYY3ZXwoPwoXcM5X+2GCB5K9C7GinW2bhiMw+dB7XueSy+RprR8k IyoR4ZUoQt6AiyrtH4Shd0BDU2wmE9sqnIbAbywsoBQGI2r7p+lmLe4u9jptmbnbSPq2 3Ys5oHSeU9pWQnG3NlqXDBcqZUsdNrsqNPskXM+zZP+4rn+AXd8b+azyse4ItC3JwPui F6p8V0FcOL7uB4udYrTNoDNXgQQxGvL/rbA80OvmEQUDf2EZB5humrZ8zfgKFdqWQADX IQrQ== X-Gm-Message-State: AKS2vOx23Pvkdojb47WeySdXBHkbNOLEr5CvoyAOtUjJ1fPvR1+YxB9k LCxnLSb4TtwARBf10Lrcnaje6a08TgcA X-Received: by 10.176.92.45 with SMTP id q45mr3657436uaf.137.1498580387193; Tue, 27 Jun 2017 09:19:47 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.0.143 with HTTP; Tue, 27 Jun 2017 09:19:46 -0700 (PDT) In-Reply-To: References: From: Robert Eckhardt Date: Tue, 27 Jun 2017 12:19:46 -0400 Message-ID: Subject: Re: [pgadmin-hackers] Re: Server side cursor limitations for on demand loading of data in query tool [RM2137] [pgAdmin4] To: Khushboo Vashi Cc: Dave Page , Ashesh Vashi , Harshal Dhumal , Harshal Dhumal , pgadmin-hackers Content-Type: multipart/alternative; boundary="f40304361e58a57c8b0552f36fc9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Unsubscribe: , List-Archive: Precedence: bulk --f40304361e58a57c8b0552f36fc9 Content-Type: text/plain; charset="UTF-8" On Tue, Jun 27, 2017 at 12:16 PM, Khushboo Vashi < khushboo.vashi@enterprisedb.com> wrote: > > > On 27 Jun 2017 18:33, "Dave Page" wrote: > > Thanks - patch committed! > > Awsome job :-) > > Gr8. Finally no more rebase request for Harshal. :) > +1 > On Tue, Jun 27, 2017 at 3:26 AM, Harshal Dhumal < > harshal.dhumal@enterprisedb.com> wrote: > >> Hi, >> >> Please find rebased patch. >> >> -- >> *Harshal Dhumal* >> *Sr. Software Engineer* >> >> EnterpriseDB India: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> >> On Mon, Jun 26, 2017 at 5:24 PM, Harshal Dhumal < >> harshal.dhumal@enterprisedb.com> wrote: >> >>> yes i'm working on that only :) >>> >>> >>> -- >>> *Harshal Dhumal* >>> *Sr. Software Engineer* >>> >>> EnterpriseDB India: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >>> On Mon, Jun 26, 2017 at 5:22 PM, Dave Page wrote: >>> >>>> I'm sorry, it needs rebasing again. If you can do it quickly, I'll >>>> make sure it's the next patch I work on in that area. >>>> >>>> Thanks. >>>> >>>> On Mon, Jun 26, 2017 at 5:16 AM, Harshal Dhumal >>>> wrote: >>>> > Hi Dave, >>>> > >>>> > Please find updated rebased patch for RM2137 >>>> > >>>> > On Fri, Jun 23, 2017 at 9:00 PM, Dave Page wrote: >>>> >> >>>> >> Hi Harshal, >>>> >> >>>> >> When can we expect an updated version of this patch? I think it's >>>> >> important to get this into the next release. >>>> >> >>>> >> Thanks! >>>> >> >>>> >> On Fri, Jun 16, 2017 at 10:55 AM, Dave Page >>>> wrote: >>>> >> > Hi, >>>> >> > >>>> >> > That's better - the failures are far less random now :-). I got the >>>> >> > following two though, on both PG and EPAS 9.5: >>>> >> > >>>> >> > ============================================================ >>>> ========== >>>> >> > 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_t >>>> ool_tests.py", >>>> >> > line 95, in runTest >>>> >> > self._query_tool_explain_analyze_buffers() >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_t >>>> ool_tests.py", >>>> >> > line 443, in _query_tool_explain_analyze_buffers >>>> >> > canvas.find_element_by_xpath("//*[contains(string(), 'Shared >>>> Read >>>> >> > Blocks')]") >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/remote/webelement.py", >>>> >> > line 260, in find_element_by_xpath >>>> >> > return self.find_element(by=By.XPATH, value=xpath) >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/remote/webelement.py", >>>> >> > line 508, in find_element >>>> >> > {"using": by, "value": value})['value'] >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/remote/webelement.py", >>>> >> > line 491, in _execute >>>> >> > return self._parent.execute(command, params) >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/remote/webdriver.py", >>>> >> > line 238, in execute >>>> >> > self.error_handler.check_response(response) >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/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":"//*[contains(string(), >>>> 'Shared >>>> >> > Read Blocks')]"} >>>> >> > (Session info: chrome=58.0.3029.110) >>>> >> > (Driver info: chromedriver=2.29.461585 >>>> >> > (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac OS X >>>> 10.12.3 >>>> >> > x86_64) >>>> >> > >>>> >> > >>>> >> > ============================================================ >>>> ========== >>>> >> > ERROR: runTest >>>> >> > (pgadmin.feature_tests.view_data_dml_queries.CheckForViewDataTest) >>>> >> > Validate Insert, Update operations in View data with given test >>>> data >>>> >> > ------------------------------------------------------------ >>>> ---------- >>>> >> > Traceback (most recent call last): >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>> ta_dml_queries.py", >>>> >> > line 104, in runTest >>>> >> > self._add_row() >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>> ta_dml_queries.py", >>>> >> > line 255, in _add_row >>>> >> > self._update_cell(cell_xpath, config_data[str(idx)]) >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>> ta_dml_queries.py", >>>> >> > line 164, in _update_cell >>>> >> > cell_el = self.page.find_by_xpath(xpath) >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgad >>>> min_page.py", >>>> >> > line 122, in find_by_xpath >>>> >> > return self.wait_for_element(lambda driver: >>>> >> > driver.find_element_by_xpath(xpath)) >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgad >>>> min_page.py", >>>> >> > line 205, in wait_for_element >>>> >> > return self._wait_for("element to exist", element_if_it_exists) >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgad >>>> min_page.py", >>>> >> > line 255, in _wait_for >>>> >> > "Timed out waiting for " + waiting_for_message) >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/support/wait.py", >>>> >> > line 71, in until >>>> >> > value = method(self._driver) >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgad >>>> min_page.py", >>>> >> > line 200, in element_if_it_exists >>>> >> > if element.is_displayed() and element.is_enabled(): >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/remote/webelement.py", >>>> >> > line 358, in is_displayed >>>> >> > return self._execute(Command.IS_ELEMENT_DISPLAYED)['value'] >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/remote/webelement.py", >>>> >> > line 491, in _execute >>>> >> > return self._parent.execute(command, params) >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/remote/webdriver.py", >>>> >> > line 238, in execute >>>> >> > self.error_handler.check_response(response) >>>> >> > File >>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>> ges/selenium/webdriver/remote/errorhandler.py", >>>> >> > line 193, in check_response >>>> >> > raise exception_class(message, screen, stacktrace) >>>> >> > StaleElementReferenceException: Message: stale element reference: >>>> >> > element is not attached to the page document >>>> >> > (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 my feature test cases for any database server version/type >>>> (PG, >>>> > EPAS) specific failures and I found that test cases are working fine >>>> on all >>>> > of them. However I have slightly modified test case to overcome above >>>> > mentioned failures. >>>> > >>>> >> >>>> >> > >>>> >> > On 9.4 everything passes. On 9.6, I get one failure: >>>> >> > >>>> >> > ============================================================ >>>> ========== >>>> >> > FAIL: runTest >>>> >> > (pgadmin.feature_tests.view_data_dml_queries.CheckForViewDataTest) >>>> >> > Validate Insert, Update operations in View data with given test >>>> data >>>> >> > ------------------------------------------------------------ >>>> ---------- >>>> >> > Traceback (most recent call last): >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>> ta_dml_queries.py", >>>> >> > line 105, in runTest >>>> >> > self._verify_row_data(True) >>>> >> > File >>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>> ta_dml_queries.py", >>>> >> > line 282, in _verify_row_data >>>> >> > self.assertEquals(cells[idx], config_data[str(idx)][1]) >>>> >> > AssertionError: u'[default]' != u'1' >>>> >> > - [default] >>>> >> > + 1 >>>> >> > >>>> > >>>> > I guess Khushboo has fixed this recently. >>>> > >>>> > >>>> >> >>>> >> > Screenshots attached. >>>> >> > >>>> >> > On Fri, Jun 16, 2017 at 7:54 AM, Harshal Dhumal >>>> >> > wrote: >>>> >> >> 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 >>>> wrote: >>>> >> >>> >>>> >> >>> Sounds good, thanks. >>>> >> >>> >>>> >> >>> On Thu, Jun 15, 2017 at 9:54 PM, Harshal Dhumal >>>> >> >>> wrote: >>>> >> >>> > Hi >>>> >> >>> > >>>> >> >>> > On Fri, Jun 16, 2017 at 2:07 AM, Dave Page >>>> >> >>> > wrote: >>>> >> >>> >> >>>> >> >>> >> Hi >>>> >> >>> >> >>>> >> >>> >> On Thu, Jun 15, 2017 at 9:30 PM, Harshal Dhumal >>>> >> >>> >> wrote: >>>> >> >>> >> > 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 >>>> >> >>> >> >> 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_t >>>> ool_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/pga >>>> dmin4/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/pga >>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>> webdriver.py", >>>> >> >>> >> >> line 756, in find_element >>>> >> >>> >> >> 'value': value})['value'] >>>> >> >>> >> >> File >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>> webdriver.py", >>>> >> >>> >> >> line 238, in execute >>>> >> >>> >> >> self.error_handler.check_response(response) >>>> >> >>> >> >> File >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>> dmin4/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_t >>>> ool_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/pga >>>> dmin4/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/pga >>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>> webdriver.py", >>>> >> >>> >> >> line 756, in find_element >>>> >> >>> >> >> 'value': value})['value'] >>>> >> >>> >> >> File >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>> webdriver.py", >>>> >> >>> >> >> line 238, in execute >>>> >> >>> >> >> self.error_handler.check_response(response) >>>> >> >>> >> >> File >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> >>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>> dmin4/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_t >>>> ool_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_t >>>> ool_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 >>>> >> >> >>>> >> >> >>>> >> > >>>> >> > >>>> >> > >>>> >> > -- >>>> >> > 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 >>>> >>> >>> >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > > --f40304361e58a57c8b0552f36fc9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Tue, Jun 27, 2017 at 12:16 PM, Khushboo Vashi <= khushb= oo.vashi@enterprisedb.com> wrote:


On 27 Jun 2017 18:33, "Dave Page&quo= t; <dpage@pgadmin= .org> wrote:
Thanks - patch committed!

Awsome job :-)
Gr8. Finally no more rebase request for Harshal. :)

+1
=C2=A0
On Tue, Jun 27, 2017 at= 3:26 AM, Harshal Dhumal <harshal.dhumal@enterprisedb.c= om> wrote:
Hi,

Please find rebased patch.

--=C2=A0
Harshal Dhumal
<= div>Sr. Software Engineer

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Company
=

On Mon, Jun 26, 2017 at 5:24 PM, Harshal Dhuma= l <harshal.dhumal@enterprisedb.com> wrote= :
yes i'm working on= that only :)


<= div dir=3D"ltr">
--=C2=A0
Harshal Dhumal
= Sr. Software Engineer

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On Mon, Jun 26, 2017 at = 5:22 PM, Dave Page <dpage@pgadmin.org> wrote:
I'm sorry, it needs rebasing again. If you can do i= t quickly, I'll
make sure it's the next patch I work on in that area.

Thanks.

On Mon, Jun 26, 2017 at 5:16 AM, Harshal Dhumal
<harshal.dhuma= l@enterprisedb.com> wrote:
> Hi Dave,
>
> Please find updated rebased patch for RM2137
>
> On Fri, Jun 23, 2017 at 9:00 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi Harshal,
>>
>> When can we expect an updated version of this patch? I think it= 9;s
>> important to get this into the next release.
>>
>> Thanks!
>>
>> On Fri, Jun 16, 2017 at 10:55 AM, Dave Page <dpage@pgadmin.org> wrote:
>> > Hi,
>> >
>> > That's better - the failures are far less random now :-).= I got the
>> > following two though, on both PG and EPAS 9.5:
>> >
>> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D
>> > ERROR: runTest
>> > (pgadmin.feature_tests.query_tool_tests.QueryToolFeature= Test)
>> > Query tool feature test
>> > --------------------------------------------------------= --------------
>> > Traceback (most recent call last):
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/query_tool_tests.py",
>> > line 95, in runTest
>> >=C2=A0 =C2=A0 =C2=A0self._query_tool_explain_analyze_buff= ers()
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/query_tool_tests.py",
>> > line 443, in _query_tool_explain_analyze_buffers
>> >=C2=A0 =C2=A0 =C2=A0canvas.find_element_by_xpath("//= *[contains(string(), 'Shared Read
>> > Blocks')]")
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 260, in find_element_by_xpath
>> >=C2=A0 =C2=A0 =C2=A0return self.find_element(by=3DBy.XPATH, va= lue=3Dxpath)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 508, in find_element
>> >=C2=A0 =C2=A0 =C2=A0{"using": by, "value":= value})['value']
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 491, in _execute
>> >=C2=A0 =C2=A0 =C2=A0return self._parent.execute(command, param= s)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webdriver.py",
>> > line 238, in execute
>> >=C2=A0 =C2=A0 =C2=A0self.error_handler.check_response(res= ponse)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/errorhandler.py",
>> > line 193, in check_response
>> >=C2=A0 =C2=A0 =C2=A0raise exception_class(message, screen, sta= cktrace)
>> > NoSuchElementException: Message: no such element: Unable to l= ocate
>> > element: {"method":"xpath","selector= ":"//*[contains(string(), 'Shared
>> > Read Blocks')]"}
>> >=C2=A0 =C2=A0(Session info: chrome=3D58.0.3029.110)
>> >=C2=A0 =C2=A0(Driver info: chromedriver=3D2.29.461585
>> > (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=3DMa= c OS X 10.12.3
>> > x86_64)
>> >
>> >
>> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D
>> > ERROR: runTest
>> > (pgadmin.feature_tests.view_data_dml_queries.CheckForVie= wDataTest)
>> > Validate Insert, Update operations in View data with given te= st data
>> > --------------------------------------------------------= --------------
>> > Traceback (most recent call last):
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 104, in runTest
>> >=C2=A0 =C2=A0 =C2=A0self._add_row()
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 255, in _add_row
>> >=C2=A0 =C2=A0 =C2=A0self._update_cell(cell_xpath, config_data[= str(idx)])
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 164, in _update_cell
>> >=C2=A0 =C2=A0 =C2=A0cell_el =3D self.page.find_by_xpath(xpath)=
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/regression/feature_u= tils/pgadmin_page.py",
>> > line 122, in find_by_xpath
>> >=C2=A0 =C2=A0 =C2=A0return self.wait_for_element(lambda driver= :
>> > driver.find_element_by_xpath(xpath))
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/regression/feature_u= tils/pgadmin_page.py",
>> > line 205, in wait_for_element
>> >=C2=A0 =C2=A0 =C2=A0return self._wait_for("element to exi= st", element_if_it_exists)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/regression/feature_u= tils/pgadmin_page.py",
>> > line 255, in _wait_for
>> >=C2=A0 =C2=A0 =C2=A0"Timed out waiting for " + waiti= ng_for_message)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/support/wait.py",
>> > line 71, in until
>> >=C2=A0 =C2=A0 =C2=A0value =3D method(self._driver)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/regression/feature_u= tils/pgadmin_page.py",
>> > line 200, in element_if_it_exists
>> >=C2=A0 =C2=A0 =C2=A0if element.is_displayed() and element.is_e= nabled():
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 358, in is_displayed
>> >=C2=A0 =C2=A0 =C2=A0return self._execute(Command.IS_ELEME= NT_DISPLAYED)['value']
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 491, in _execute
>> >=C2=A0 =C2=A0 =C2=A0return self._parent.execute(command, param= s)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webdriver.py",
>> > line 238, in execute
>> >=C2=A0 =C2=A0 =C2=A0self.error_handler.check_response(res= ponse)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/errorhandler.py",
>> > line 193, in check_response
>> >=C2=A0 =C2=A0 =C2=A0raise exception_class(message, screen, sta= cktrace)
>> > StaleElementReferenceException: Message: stale element r= eference:
>> > element is not attached to the page document
>> >=C2=A0 =C2=A0(Session info: chrome=3D58.0.3029.110)
>> >=C2=A0 =C2=A0(Driver info: chromedriver=3D2.29.461585
>> > (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=3DMa= c OS X 10.12.3
>> > x86_64)
>> >
>
>
> I checked my feature test cases for any database server version/type (= PG,
> EPAS) specific failures and I found that test cases are working fine o= n all
> of them. However I have slightly modified test case to overcome above<= br> > mentioned failures.
>
>>
>> >
>> > On 9.4 everything passes. On 9.6, I get one failure:
>> >
>> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D
>> > FAIL: runTest
>> > (pgadmin.feature_tests.view_data_dml_queries.CheckForVie= wDataTest)
>> > Validate Insert, Update operations in View data with given te= st data
>> > --------------------------------------------------------= --------------
>> > Traceback (most recent call last):
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 105, in runTest
>> >=C2=A0 =C2=A0 =C2=A0self._verify_row_data(True)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 282, in _verify_row_data
>> >=C2=A0 =C2=A0 =C2=A0self.assertEquals(cells[idx], config_data[= str(idx)][1])
>> > AssertionError: u'[default]' !=3D u'1'
>> > - [default]
>> > + 1
>> >
>
> I guess Khushboo has fixed this recently.
>
>
>>
>> > Screenshots attached.
>> >
>> > On Fri, Jun 16, 2017 at 7:54 AM, Harshal Dhumal
>> > <harshal.dhumal@enterprisedb.com> wrote:
>> >> 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 de= mand 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 <dpage@pgadmin.org> wrot= e:
>> >>>
>> >>> Sounds good, thanks.
>> >>>
>> >>> On Thu, Jun 15, 2017 at 9:54 PM, Harshal Dhumal
>> >>> <harshal.dhumal@enterprisedb.com> wrote:
>> >>> > Hi
>> >>> >
>> >>> > On Fri, Jun 16, 2017 at 2:07 AM, Dave Page <<= a href=3D"mailto:dpage@pgadmin.org" target=3D"_blank">dpage@pgadmin.org= >
>> >>> > wrote:
>> >>> >>
>> >>> >> Hi
>> >>> >>
>> >>> >> On Thu, Jun 15, 2017 at 9:30 PM, Harshal Dhu= mal
>> >>> >> <harshal.dhumal@enterprisedb.com> w= rote:
>> >>> >> > Hi Dave,
>> >>> >> >
>> >>> >> > Please find attached updated patch.
>> >>> >> >
>> >>> >> > On Thu, Jun 15, 2017 at 3:58 PM, Dave P= age <dpage@pgadmi= n.org>
>> >>> >> > wrote:
>> >>> >> >>
>> >>> >> >> Hi
>> >>> >> >>
>> >>> >> >> On Wed, Jun 14, 2017 at 11:36 PM, H= arshal Dhumal
>> >>> >> >> <harshal.dhumal@enterprisedb.com<= /a>> wrote:
>> >>> >> >>>
>> >>> >> >>> Hi Dave,
>> >>> >> >>>
>> >>> >> >>> Please find rebased patch for R= M2137.
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> 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 display= ed. E.g. if there are 12345
>> >>> >> >> rows
>> >>> >> >> in
>> >>> >> >> total, then the row header should b= e sized to display 5 digits.
>> >>> >> >>
>> >>> >> > Fixed.
>> >>> >> >
>> >>> >> >
>> >>> >> >>
>> >>> >> >> - The tests are comprehensive, whic= h is awesome. However, every
>> >>> >> >> time
>> >>> >> >> I
>> >>> >> >> ran
>> >>> >> >> them, at least one of the feature t= ests failed. Unfortunately,
>> >>> >> >> it
>> >>> >> >> was a
>> >>> >> >> different one each time. In the las= t two runs, I got:
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> >>> >> >> ERROR: runTest
>> >>> >> >> (pgadmin.feature_tests.query_t= ool_tests.QueryToolFeatureTest)
>> >>> >> >> Query tool feature test
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> ------------------------------= ----------------------------------------
>> >>> >> >> Traceback (most recent call last):<= br> >> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /regression/feature_utils/base_feature_test.py",
>> >>> >> >> line 40, in setUp
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self.before() >> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /pgadmin/feature_tests/query_tool_tests.py",
>> >>> >> >> line 40, in before
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self._connects_t= o_server()
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /pgadmin/feature_tests/query_tool_tests.py",
>> >>> >> >> line 144, in _connects_to_server >> >>> >> >>=C2=A0 =C2=A0 =C2=A0self.page.driver= .find_element_by_link_text("Create"))\
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 319, in find_element_by_link_t= ext
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0return self.find= _element(by=3DBy.LINK_TEXT, value=3Dlink_text)
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 756, in find_element
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0'value':= value})['value']
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 238, in execute
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self.error_handl= er.check_response(response)
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= errorhandler.py",
>> >>> >> >> line 193, in check_response
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0raise exception_= class(message, screen, stacktrace)
>> >>> >> >> NoSuchElementException: Message: no= such element: Unable to
>> >>> >> >> locate
>> >>> >> >> element: {"method":"= link text","selector":"Create"}
>> >>> >> >>=C2=A0 =C2=A0(Session info: chrome= =3D58.0.3029.110)
>> >>> >> >>=C2=A0 =C2=A0(Driver info: chromedri= ver=3D2.29.461585
>> >>> >> >> (0be2cd95f834e9ee7c46bcc7cf405= b483f5ae83b),platform=3DMac 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 t= est 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 secon= d delay and observer
>> >>> > behaviour.
>> >>> > I'll send separate patch for this tomorrow a= s this is not related to
>> >>> > on
>> >>> > demand query result feature or its test cases. >> >>> >
>> >>> >>
>> >>> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> >>> >> >> ERROR: runTest
>> >>> >> >> (pgadmin.feature_tests.query_t= ool_tests.QueryToolFeatureTest)
>> >>> >> >> Query tool feature test
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> ------------------------------= ----------------------------------------
>> >>> >> >> Traceback (most recent call last):<= br> >> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /pgadmin/feature_tests/query_tool_tests.py",
>> >>> >> >> line 119, in runTest
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self._query_tool= _auto_rollback_enabled()
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /pgadmin/feature_tests/query_tool_tests.py",
>> >>> >> >> line 697, in _query_tool_auto_rollb= ack_enabled
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0'//div[conta= ins(@class, "sql-editor-message") and
>> >>> >> >> contains(string(),
>> >>> >> >> "COMMIT")]'
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 295, in find_element_by_xpath<= br> >> >>> >> >>=C2=A0 =C2=A0 =C2=A0return self.find= _element(by=3DBy.XPATH, value=3Dxpath)
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 756, in find_element
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0'value':= value})['value']
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 238, in execute
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self.error_handl= er.check_response(response)
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= errorhandler.py",
>> >>> >> >> line 193, in check_response
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0raise 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")]"}
>> >>> >> >>=C2=A0 =C2=A0(Session info: chrome= =3D58.0.3029.110)
>> >>> >> >>=C2=A0 =C2=A0(Driver info: chromedri= ver=3D2.29.461585
>> >>> >> >> (0be2cd95f834e9ee7c46bcc7cf405= b483f5ae83b),platform=3DMac OS X
>> >>> >> >> 10.12.3
>> >>> >> >> x86_64)
>> >>> >> >>
>> >>> >> > I have updated Auto rollback enabled te= st in this patch.
>> >>> >> >
>> >>> >> >>
>> >>> >> >> Relevant screenshots attached.
>> >>> >> >>
>> >>> >> >> - Can you tidy up the regression ou= tput a little please? Instead
>> >>> >> >> of:
>> >>> >> >>
>> >>> >> >> -------
>> >>> >> >> runTest
>> >>> >> >> (pgadmin.feature_tests.query_t= ool_tests.QueryToolFeatureTest)
>> >>> >> >> Query tool feature test ... On dema= nd result set on scrolling...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> On demand result set on grid select= all...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> On demand result set on column sele= ct 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_t= ool_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 sele= ct 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.enter= prisedb.com
>> >>> >> >> The Enterprise PostgreSQL Company >> >>> >> >
>> >>> >> >
>> >>> >>
>> >>> >>
>> >>> >>
>> >>> >> --
>> >>> >> Dave Page
>> >>> >> Blog: http://pgsnake.blogspot.com
>> >>> >> Twitter: @pgsnake
>> >>> >>
>> >>> >> EnterpriseDB UK: http://www.enterprisedb.c= om
>> >>> >> 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
>>
>>
>>
>> --
>> 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: @pgsn= ake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Co= mpany


--f40304361e58a57c8b0552f36fc9--