Re: Acceptance Tests against a browser (WIP)

From: Atira Odhner <aodhner(at)pivotal(dot)io>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: George Gelashvili <ggelashvili(at)pivotal(dot)io>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: Acceptance Tests against a browser (WIP)
Date: 2017-02-09 13:15:51
Message-ID: CA+Vc24p_Q9FGy3MGCHUd_HaGfHNmqkfqrqRV9HSkS7cSosTdFA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

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 <dpage(at)pgadmin(dot)org> 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 <module>
> 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 <aodhner(at)pivotal(dot)io> 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 <aodhner(at)pivotal(dot)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
> 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 <dpage(at)pgadmin(dot)org> wrote:
> >>>
> >>> Hi
> >>>
> >>> On Fri, Feb 3, 2017 at 9:56 PM, Atira Odhner <aodhner(at)pivotal(dot)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:
> >>>
> >>> - 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
>

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2017-02-09 13:26:44 Re: Acceptance Tests against a browser (WIP)
Previous Message Dave Page 2017-02-09 12:53:47 pgAdmin 4 commit: Update supported Python versions.