Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbo8W-0001iZ-32 for pgadmin-hackers@arkaria.postgresql.org; Thu, 09 Feb 2017 12:47:44 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cbo8V-00020V-Ds for pgadmin-hackers@arkaria.postgresql.org; Thu, 09 Feb 2017 12:47:43 +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 1cbo8H-0001lh-Ic for pgadmin-hackers@postgresql.org; Thu, 09 Feb 2017 12:47:29 +0000 Received: from mail-it0-x230.google.com ([2607:f8b0:4001:c0b::230]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1cbo88-00079T-Iu for pgadmin-hackers@postgresql.org; Thu, 09 Feb 2017 12:47:28 +0000 Received: by mail-it0-x230.google.com with SMTP id 203so124337251ith.0 for ; Thu, 09 Feb 2017 04:47:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=8gb/AJJvnDCYiSuZ7T38DUE5jQTHRQKiommutGzcjr4=; b=d8TeoQSMyS3w2oaR2DJv/4QwgwgSsWugP2GaK5mjxOU2YOpsoSJWerXkrHBiLGIoKZ E0KmHtt2CLbWJA5wYRHrczbcI3WM+k6XfR+3uqswI7eNJOBlGzsYsjwrK+IQGMZIsFI0 TLpF6yfwRSFUsSGJNfGOgZ6yxtYhzRN8AE+XPxIhwwk9FX4zQavptDlJS/zrRAgdAN8t RzvJw6yDhUpgxRi7WnghcFhfbY7MEZzgop0ER6Y4JiNG9AlhK3uFYtZmpWdfVQcHvAUn roYZAiLGIZtObiRJn4wBHQ9hXVPXKdBGk7oKAN9kQjSZOYDQcYX/CRkmftzi/wO23dvm 3apg== 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=8gb/AJJvnDCYiSuZ7T38DUE5jQTHRQKiommutGzcjr4=; b=qngsSAgqV7eWc0H4AjTXFVdmrwMh66TyS840OtMkRaq0ZKcUvbPlPullqHcs+n9HCJ DHfQb40/N6rJBDAzGEmmoxGcGzkdBe3T8gelQYw3DW4CKOlUP3kizVY1w4rm3PN61QYL cKuEPXMh8J6hsjunN0M0Mx/FNI6gHYn4HQxfKevkkAhsB3VFbNRZvpSZh8OAYhSJlHiM 96A5lVDyLwPahGTn3OPy2zN5knlKXLqaqtrdlOvfewXa28r0Xn0RU4gUXP2h//1V4bCJ luAmzG0tzE6SLL1n0aJQRD9ZxA3ZFYrKOZiXMpp5P+wvBRk6mFOtNTjLNbSEA2ZrVOtm 86/g== X-Gm-Message-State: AMke39kSA3fV8Wa96mU88FU/EuQf7N6LIkCzbWghe4RVMzG+VjC5cO00PVrLRGLpqYdstWVyvr4VmQJLCjmYNw== X-Received: by 10.36.245.5 with SMTP id k5mr3085654ith.100.1486644438330; Thu, 09 Feb 2017 04:47:18 -0800 (PST) MIME-Version: 1.0 Received: by 10.64.224.198 with HTTP; Thu, 9 Feb 2017 04:47:17 -0800 (PST) In-Reply-To: References: From: Dave Page Date: Thu, 9 Feb 2017 12:47:17 +0000 Message-ID: Subject: Re: Acceptance Tests against a browser (WIP) To: Atira Odhner Cc: George Gelashvili , pgadmin-hackers Content-Type: text/plain; charset=UTF-8 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 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 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers