Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cboa1-0002uB-5m for pgadmin-hackers@arkaria.postgresql.org; Thu, 09 Feb 2017 13:16:09 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cboa0-0007UX-Oo for pgadmin-hackers@arkaria.postgresql.org; Thu, 09 Feb 2017 13:16:08 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cboZz-0007UF-I2 for pgadmin-hackers@postgresql.org; Thu, 09 Feb 2017 13:16:07 +0000 Received: from mail-qk0-x231.google.com ([2607:f8b0:400d:c09::231]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1cboZv-0006Yg-He for pgadmin-hackers@postgresql.org; Thu, 09 Feb 2017 13:16:06 +0000 Received: by mail-qk0-x231.google.com with SMTP id u25so3524899qki.2 for ; Thu, 09 Feb 2017 05:16:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=CMX0MihANi9A9iXlpLGo31BIznbfxJA3TNYsYCs2ICY=; b=o5UXTS+o+fcHxPSMnuGxH2mRPKJGg9maOQcEVMOHw0EVP+x80WBEnUKvzMBXeU7VEz KKwHLcWy62m5qIUh1BAjvWewxUz6e8k3D9NRGSA2f5b4da/oiHTLl24UMohTV5xgKxPC udcDt7V2Qc+uDk9fB7FaqAhJ+Bn9Rb3I3yKHoDYvqUZQPABLJ/QdzYs9qWH//qdu9QMf Tq5mixafdU02SMgGfVH6YGu7wbkYzUAfeSLOpKAKSN9YJcYumfpbE44ci/twxdVguQSY HPUtvaLcddg5JKjxb2qRlglG4k/EkCbUkeUlZYubu/Q5iwzQqKgCarhghQmwAJkh5XT+ nUVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=CMX0MihANi9A9iXlpLGo31BIznbfxJA3TNYsYCs2ICY=; b=QYQYUz8j+Jj03GAMGWOGtBYIUWPLLaQnAaBBFNnQ+pX/LwHBS41JccZSKpXt9YDkCI VA4qmlIAA93H+nEc4knvxEaSXE9tN+6jhIorO3XDB310JAY6/6nmvZs+QTA9ddNezugv CPSGOhxsgMkqOhHcMl9uLPAOh0E6yTso6FJMSld+VmHGI2h8EdyorWQnpswEciFcV7AJ OfXVOmf7oeZsrblaTUfeIi9jltGA3dCNWd3UVH9PIe6/jVaHMd9pcHjUCUmP81HK//t7 MVuQIYCMq8zds7DlV09hLlnG9hsgJKf43xQfQRFr608KfE//trqyGqG976vXAdjj3ueZ 6HQw== X-Gm-Message-State: AMke39lTpc+9M5T89DKhrYyNAchhX9Jc/x2q2oWOoK/+MV1bcPXwHlqY1N25gUZvG7S5txkW5OCo91XvEwu58JSY X-Received: by 10.55.42.41 with SMTP id q41mr2934461qkh.169.1486646162359; Thu, 09 Feb 2017 05:16:02 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Atira Odhner Date: Thu, 09 Feb 2017 13:15:51 +0000 Message-ID: Subject: Re: Acceptance Tests against a browser (WIP) To: Dave Page Cc: George Gelashvili , pgadmin-hackers Content-Type: multipart/alternative; boundary=001a1149389c6a6ead054818c8dc X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1149389c6a6ead054818c8dc Content-Type: text/plain; charset=UTF-8 create_table is the change we pulled into the other patch which would need to be applied first. On Thu, Feb 9, 2017, 7:47 AM Dave Page wrote: > Hi > > I get the following crash when running with Python 3.4 or 3.5: > > (pgadmin4-py34) piranha:pgadmin4 dpage$ python web/regression/runtests.py > pgAdmin 4 - Application Initialisation > ====================================== > > > The configuration database - '/Users/dpage/.pgadmin/test_pgadmin4.db' > does not exist. > Entering initial setup mode... > NOTE: Configuring authentication for DESKTOP mode. > > The configuration database has been created at > /Users/dpage/.pgadmin/test_pgadmin4.db > > =============Running the test cases for 'Regression - PG 9.4'============= > runTest > (pgadmin.acceptance.tests.connect_to_server_feature_test.ConnectsToServerFeatureTest) > ... Traceback (most recent call last): > File "web/regression/runtests.py", line 276, in > verbosity=2).run(suite) > File > "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/runner.py", > line 168, in run > test(result) > File > "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/suite.py", > line 84, in __call__ > return self.run(*args, **kwds) > File > "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/suite.py", > line 122, in run > test(result) > File > "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/case.py", > line 628, in __call__ > return self.run(*args, **kwds) > File > "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/case.py", > line 588, in run > self._feedErrorsToResult(result, outcome.errors) > File > "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/case.py", > line 515, in _feedErrorsToResult > if issubclass(exc_info[0], self.failureException): > TypeError: issubclass() arg 2 must be a class or tuple of classes > > With Python 2.7, it initially opens Chrome with the URL "data:," > (without the quotes), and then spits out: > > ====================================================================== > ERROR: runTest > (pgadmin.acceptance.tests.connect_to_server_feature_test.ConnectsToServerFeatureTest) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File > "/Users/dpage/git/pgadmin4/web/pgadmin/acceptance/tests/connect_to_server_feature_test.py", > line 41, in setUp > test_utils.create_table(self.server, "acceptance_test_db", > "test_table") > AttributeError: 'module' object has no attribute 'create_table' > > ====================================================================== > ERROR: runTest > (pgadmin.acceptance.tests.template_selection_feature_test.TemplateSelectionFeatureTest) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File > "/Users/dpage/git/pgadmin4/web/pgadmin/acceptance/tests/template_selection_feature_test.py", > line 36, in runTest > test_utils.create_table(self.server, "acceptance_test_db", > "test_table") > AttributeError: 'module' object has no attribute 'create_table' > > ====================================================================== > ERROR: runTest > (pgadmin.acceptance.tests.template_selection_feature_test.TemplateSelectionFeatureTest) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File > "/Users/dpage/git/pgadmin4/web/pgadmin/acceptance/tests/template_selection_feature_test.py", > line 66, in tearDown > self.page.find_by_xpath("//button[contains(.,'Cancel')]").click() > File "/Users/dpage/git/pgadmin4/web/regression/utils/pgadmin_page.py", > line 46, in find_by_xpath > return self.wait_for_element(lambda: > self.driver.find_element_by_xpath(xpath)) > File "/Users/dpage/git/pgadmin4/web/regression/utils/pgadmin_page.py", > line 86, in wait_for_element > return self._wait_for("element to exist", element_if_it_exists) > File "/Users/dpage/git/pgadmin4/web/regression/utils/pgadmin_page.py", > line 120, in _wait_for > raise RuntimeError("timed out waiting for " + waiting_for_message) > RuntimeError: timed out waiting for element to exist > > ---------------------------------------------------------------------- > Ran 149 tests in 59.258s > > FAILED (errors=3, skipped=12) > > > On Wed, Feb 8, 2017 at 10:15 PM, Atira Odhner wrote: > > Hey Dave, > > > > We re-used one of the test helpers for the > 'fix-greenplum-show-tables.diff' > > patch, so here is an updated patch which does not include adding that > test > > helper in case you apply the show-tables patch first. Also, we saw some > > strange test behavior yesterday where form fields weren't being filled in > > correctly so we changed the way that input fields get filled to be more > > reliable. > > > > In short these need to be applied in this order: > >> > >> git apply fix-greenplum-show-tables.diff > >> > >> git apply > >> acceptance-tests-minus-create-table-helper-with-fixed-inputs.diff > > > > > > We also moved the --exclude flag changes out to a separate patch. > > > > On our side we are still dealing with these as 20 separate commits. What > is > > the best way for us to send you these patches? Do you prefer having them > all > > squashed down to a single patch or to have smaller patches? > > > > > > > > On Mon, Feb 6, 2017 at 9:54 AM, Atira Odhner wrote: > >> > >> I agree that we should rename the test. We've renamed it to > >> "template_selection_feature_test". > >> Your other suggestions are captured in our backlog as future > improvements. > >> We definitely can and should do those things but I think it would be > >> valuable to go ahead and get this suite in and give other devs a chance > to > >> use and iterate on this work. > >> > >> Thanks, > >> > >> Tira & George > >> > >> On Mon, Feb 6, 2017 at 5:32 AM, Dave Page wrote: > >>> > >>> Hi > >>> > >>> On Fri, Feb 3, 2017 at 9:56 PM, Atira Odhner > wrote: > >>> > Hi Dave, > >>> > > >>> > Here is a new patch which includes the following: > >>> > - randomized ports > >>> > - delete the acceptance_test_db database in setup in case a prior run > >>> > failed > >>> > - fixed size browser window > >>> > >>> Definitely getting there :-). A couple of thoughts/questions: > >>> > >>> - Now there are 2 tests in there, it's clear that both the Python > >>> server and browser session are restarted for each test. Can this be > >>> avoided? It'll really slow down test execution as more and more are > >>> added. > >>> > >>> - We've got a new monster name: > >>> > >>> > pgadmin.acceptance.tests.sql_template_selection_by_postgres_version_works_feature_test.SQLTemplateSelectionByPostgresVersionWorksFeatureTest > >>> (which on disk is > >>> sql_template_select_by_postgres_version_works_feature_test.py). Names > >>> like that really must be shortened to something more sane and > >>> manageable. > >>> > >>> - I'm a little confused by why the tests cannot be run in server mode. > >>> The error says it's because the username/password is unknown - > >>> however, both the pgAdmin and database server usernames and passwords > >>> are in test_config.json. > >>> > >>> 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 > --001a1149389c6a6ead054818c8dc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

create_table is the change we pulled into the other patch wh= ich would need to be applied first.


On Thu, Feb 9, 2017, 7:47 A= M Dave Page <dpage@pgadmin.org&= gt; wrote:
Hi

I get the following crash when running with Python 3.4 or 3.5:

(pgadmin4-py34) piranha:pgadmin4 dpage$ python web/regression/runtests.py pgAdmin 4 - Application Initialisation
=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


The configuration database - '/Users/dpage/.pgadmin/test_pgadmin4.db= 9;
does not exist.
Entering initial setup mode...
NOTE: Configuring authentication for DESKTOP mode.

The configuration database has been created at
/Users/dpage/.pgadmin/test_pgadmin4.db

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DRunning the test cases for 'Regr= ession - PG 9.4'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
runTest (pgadmin.acceptance.tests.connect_to_server_feature_test.ConnectsTo= ServerFeatureTest)
... Traceback (most recent call last):
=C2=A0 File "web/regression/runtests.py", line 276, in <module= >
=C2=A0 =C2=A0 verbosity=3D2).run(suite)
=C2=A0 File "/opt/local/Library/Frameworks/Python.framework/Versions/3= .4/lib/python3.4/unittest/runner.py",
line 168, in run
=C2=A0 =C2=A0 test(result)
=C2=A0 File "/opt/local/Library/Frameworks/Python.framework/Versions/3= .4/lib/python3.4/unittest/suite.py",
line 84, in __call__
=C2=A0 =C2=A0 return self.run(*args, **kwds)
=C2=A0 File "/opt/local/Library/Frameworks/Python.framework/Versions/3= .4/lib/python3.4/unittest/suite.py",
line 122, in run
=C2=A0 =C2=A0 test(result)
=C2=A0 File "/opt/local/Library/Frameworks/Python.framework/Versions/3= .4/lib/python3.4/unittest/case.py",
line 628, in __call__
=C2=A0 =C2=A0 return self.run(*args, **kwds)
=C2=A0 File "/opt/local/Library/Frameworks/Python.framework/Versions/3= .4/lib/python3.4/unittest/case.py",
line 588, in run
=C2=A0 =C2=A0 self._feedErrorsToResult(result, outcome.errors)
=C2=A0 File "/opt/local/Library/Frameworks/Python.framework/Versions/3= .4/lib/python3.4/unittest/case.py",
line 515, in _feedErrorsToResult
=C2=A0 =C2=A0 if issubclass(exc_info[0], self.failureException):
TypeError: issubclass() arg 2 must be a class or tuple of classes

With Python 2.7, it initially opens Chrome with the URL "data:,"<= br class=3D"gmail_msg"> (without the quotes), and then spits out:

=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.acceptance.tests.connect_to_server_feature_test.Con= nectsToServerFeatureTest)
----------------------------------------------------------------------
Traceback (most recent call last):
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/acceptance/tests/co= nnect_to_server_feature_test.py",
line 41, in setUp
=C2=A0 =C2=A0 test_utils.create_table(self.server, "acceptance_test_db= ", "test_table")
AttributeError: 'module' object has no attribute 'create_table&= #39;

=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.acceptance.tests.template_selection_feature_test.Te= mplateSelectionFeatureTest)
----------------------------------------------------------------------
Traceback (most recent call last):
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/acceptance/tests/te= mplate_selection_feature_test.py",
line 36, in runTest
=C2=A0 =C2=A0 test_utils.create_table(self.server, "acceptance_test_db= ", "test_table")
AttributeError: 'module' object has no attribute 'create_table&= #39;

=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.acceptance.tests.template_selection_feature_test.Te= mplateSelectionFeatureTest)
----------------------------------------------------------------------
Traceback (most recent call last):
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/acceptance/tests/te= mplate_selection_feature_test.py",
line 66, in tearDown
=C2=A0 =C2=A0 self.page.find_by_xpath("//button[contains(.,'Cancel= ')]").click()
=C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/utils/pgadmin_pa= ge.py",
line 46, in find_by_xpath
=C2=A0 =C2=A0 return self.wait_for_element(lambda:
self.driver.find_element_by_xpath(xpath))
=C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/utils/pgadmin_pa= ge.py",
line 86, in wait_for_element
=C2=A0 =C2=A0 return self._wait_for("element to exist", element_i= f_it_exists)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/utils/pgadmin_pa= ge.py",
line 120, in _wait_for
=C2=A0 =C2=A0 raise RuntimeError("timed out waiting for " + waiti= ng_for_message)
RuntimeError: timed out waiting for element to exist

----------------------------------------------------------------------
Ran 149 tests in 59.258s

FAILED (errors=3D3, skipped=3D12)


On Wed, Feb 8, 2017 at 10:15 PM, Atira Odhner <aodhner@pivotal.io&g= t; wrote:
> Hey Dave,
>
> We re-used one of the test helpers for the 'fix-greenplum-show-tab= les.diff'
> patch, so here is an updated patch which does not include adding that = test
> helper in case you apply the show-tables patch first. Also, we saw som= e
> strange test behavior yesterday where form fields weren't being fi= lled in
> correctly so we changed the way that input fields get filled to be mor= e
> reliable.
>
> In short these need to be applied in this order:
>>
>> git apply fix-greenplum-show-tables.diff
>>
>> git apply
>> acceptance-tests-minus-create-table-helper-with-fixed-inputs.diff<= br class=3D"gmail_msg"> >
>
> We also moved the --exclude flag changes out to a separate patch.
>
> On our side we are still dealing with these as 20 separate commits. Wh= at is
> the best way for us to send you these patches? Do you prefer having th= em all
> squashed down to a single patch or to have smaller patches?
>
>
>
> On Mon, Feb 6, 2017 at 9:54 AM, Atira Odhner <aodhner@pivotal.io> wrote:
>>
>> I agree that we should rename the test. We've renamed it to >> "template_selection_feature_test".
>> Your other suggestions are captured in our backlog as future impro= vements.
>> We definitely can and should do those things but I think it would = be
>> valuable to go ahead and get this suite in and give other devs a c= hance to
>> use and iterate on this work.
>>
>> Thanks,
>>
>> Tira & George
>>
>> On Mon, Feb 6, 2017 at 5:32 AM, Dave Page <
dpage@pgadmin.org> wrote:
>>>
>>> Hi
>>>
>>> On Fri, Feb 3, 2017 at 9:56 PM, Atira Odhner <
aodhner@pivo= tal.io> wrote:
>>> > Hi Dave,
>>> >
>>> > Here is a new patch which includes the following:
>>> > - randomized ports
>>> > - delete the acceptance_test_db database in setup in case= a prior run
>>> > failed
>>> > - fixed size browser window
>>>
>>> Definitely getting there :-). A couple of thoughts/questions:<= br class=3D"gmail_msg"> >>>
>>> - Now there are 2 tests in there, it's clear that both the= Python
>>> server and browser session are restarted for each test. Can th= is be
>>> avoided? It'll really slow down test execution as more and= more are
>>> added.
>>>
>>> - We've got a new monster name:
>>>
>>> pgadmin.acceptance.tests.sql_template_selection_by_postgres_ve= rsion_works_feature_test.SQLTemplateSelectionByPostgresVersionWorksFeatureT= est
>>> (which on disk is
>>> sql_template_select_by_postgres_version_works_feature_test.py)= . Names
>>> like that really must be shortened to something more sane and<= br class=3D"gmail_msg"> >>> manageable.
>>>
>>> - I'm a little confused by why the tests cannot be run in = server mode.
>>> The error says it's because the username/password is unkno= wn -
>>> however, both the pgAdmin and database server usernames and pa= sswords
>>> are in test_config.json.
>>>
>>> Thanks!
>>>
>>> --
>>> Dave Page
>>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake
>>>
>>> EnterpriseDB UK: http://www.enterprise= db.com
>>> The Enterprise PostgreSQL Company
>>
>>
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
--001a1149389c6a6ead054818c8dc--