Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fT4dO-0002x9-Me for pgadmin-hackers@arkaria.postgresql.org; Wed, 13 Jun 2018 12:12:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fT4dN-0006if-4S for pgadmin-hackers@arkaria.postgresql.org; Wed, 13 Jun 2018 12:12:17 +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.89) (envelope-from ) id 1fT4dM-0006iV-Dd for pgadmin-hackers@lists.postgresql.org; Wed, 13 Jun 2018 12:12:16 +0000 Received: from mail-oi0-x242.google.com ([2607:f8b0:4003:c06::242]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fT4dH-0000dI-Ns for pgadmin-hackers@postgresql.org; Wed, 13 Jun 2018 12:12:14 +0000 Received: by mail-oi0-x242.google.com with SMTP id t133-v6so2065102oif.10 for ; Wed, 13 Jun 2018 05:12:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=5TvhE9SwgJEl6Ch8PLvYzx8E855PYdDnG6cMJ+Qw2i4=; b=NIqiaG/BETDony3kqfWH3ZkIVXcfvM8lDegZS+O943nJcQEjFWTEs1iCm3FQIoQikb 6BweSbcaB2EKb5qoOd8uScBzpZ9K1pqPXVjRFFtCDJK7d36zlSNMftjW2d3MZ9i7SlLd cLst+4MigdwkPNccIH6vjBngMahXQTcNCrdDUr4xMHqRyQYSF3ctaWiSQjLoC9N2VOz6 HUZKHJj7WyBLbMm2Uu7uuaWAlm6spZ7OYsLABYeupF+V7s166JOPdBassInI+ZAKucLZ SUF47t2cJclILBZzI2OdR7hZ/57nuKqrlniWr3he1jJuGFp8+DscUKLZRDIMz+ezD0dW 7fig== 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=5TvhE9SwgJEl6Ch8PLvYzx8E855PYdDnG6cMJ+Qw2i4=; b=OA6ZgFQ13zI5dQ/bVIVkQfpdy5pchH8lMf7wv8fnkZpxkcAdX9MLtwlr+j06C6kcpe 3U4eiTtyrVx06p0hNvVUfUiBX8P0RTlj6+A8A5vbiOgqUyIT5fBkdyiZb0eaBAAYkOjE Z+68CBmCf/OQN13MzK4LXrXVvegoiIPK4dPwlaEUSe2mbxZBjKW/TKZ7gb1q6Yon1/8D NArTQbWeZyqxdWrC2f68aM+hVPLGEsp60BRVa+HntQT8+AlRVYnQONPzY/hbdbMxS2+P 3z40Ys7f54J1Sz5pDvn3UaEOqVbNQgcglYeIhaS8eW8DuuQ+iF0iENT2/2B6JdGvls86 9nZw== X-Gm-Message-State: APt69E1TahYS/aIpqdmgqFTUIT6obo01niFC75MrgiEHd07K4kG0eMiA FwjXdnDXQT6YQ+Mehd1tZ8xXQsbgdz2eIl/8GJRXKQ== X-Google-Smtp-Source: ADUXVKJxtulGy9zHiKQFTMKHI5CCKsRFsD7fVVIy7vR+t4U9buxIpdMi6uygtCQSokdu1hpZ8DB+D+bPGG1mbjGdgTw= X-Received: by 2002:aca:a97:: with SMTP id k23-v6mr4442966oiy.83.1528891930584; Wed, 13 Jun 2018 05:12:10 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:4081:0:0:0:0:0 with HTTP; Wed, 13 Jun 2018 05:12:09 -0700 (PDT) In-Reply-To: References: From: Khushboo Vashi Date: Wed, 13 Jun 2018 17:42:09 +0530 Message-ID: Subject: Re: [pgadmin4][Patch]: Test cases for the backup module To: Victoria Henry Cc: Dave Page , Joao De Almeida Pereira , pgadmin-hackers Content-Type: multipart/alternative; boundary="0000000000006c3de1056e84e433" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000006c3de1056e84e433 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Victoria, On Tue, Jun 12, 2018 at 9:06 PM, Victoria Henry wrote: > Hi Khushboo > can you explain a little bit more this while loop? > > > cnt =3D 0 > while 1: > if cnt > 1: > break > # Check the process list > response1 =3D self.tester.get('/misc/bgprocess/?_=3D'.format( > random.randint(1, 9999999))) > self.assertEquals(response1.status_code, 200) > process_list =3D json.loads(response1.data.decode('utf-8')) > > if len(process_list) > 0 and 'execution_time' in process_list[0]: > break > time.sleep(0.5) > cnt +=3D 1 > > From what it looks like this will only run twice, maybe a for would be a > better solution because we know it will only run twice. Also are we sure = we > only want it to run twice? > > The code waits till the background process completes. So, while I originally developed, not intended to run only twice. But after that I put a kind of break point and that remains there. So, I will remove that if condition which is not required. > We are using PyCharm to do our developments and we notice there are a big > group of unused variables throughout. We should remove them if they are n= ot > needed. Not sure if your editor also shows that information or not. > Do you know if there is a configuration in pycodestyle to enable the check > for unused variables? That would help a lot. > > Thanks for sharing the information. > The code > > assert 'execution_time' in process_list[0] > assert 'stime' in process_list[0] > assert 'exit_code' in process_list[0] > assert process_list[0]['exit_code'] in self.expected_exit_code > > in test_Create_restore_job should use self.assertEqual or similar from > unittest instead of plain assert. Because when something fails we do not > have a way to understand what was wrong. > Will do. > The tests on the restore are still failing GreenPlum. > It is failing because, Restore is not working with GreenPlum. Can you please look into the Restore functionality for GPDB? Thanks, Khushboo > =E2=80=8B > > > > Thanks > Victoria & Joao > > On Tue, Jun 12, 2018 at 6:44 AM Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> Please find the attached updated patch with some code cleanup. >> >> On Tue, Jun 12, 2018 at 3:54 PM, Khushboo Vashi < >> khushboo.vashi@enterprisedb.com> wrote: >> >>> Hi, >>> >>> Please find the attached patch excluding feature test cases. >>> Python test cases are working fine, so we can commit this patch. I am >>> working on fixing the feature tests which are failing on the different >>> window sizes. >>> >>> Thanks, >>> Khushboo >>> >>> On Fri, Jun 8, 2018 at 2:38 PM, Dave Page wrote: >>> >>>> Hi >>>> >>>> On Fri, Jun 8, 2018 at 6:33 AM, Khushboo Vashi < >>>> khushboo.vashi@enterprisedb.com> wrote: >>>> >>>>> Hi Dave, >>>>> >>>>> As per our discussion I have changed the window size to 1280X800, >>>>> before it was 1280X900. >>>>> Please find the attached updated patch >>>>> >>>> >>>> I'm not sure that actually made any difference on my system. The windo= w >>>> continued to look taller than it is wide, so I wonder if the code to s= et >>>> the size is being ignored, or is at the wrong place? >>>> >>>> Anyway, I got 10 failures with this patch :-( >>>> >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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.pg_utilities_backup_restore_test= . >>>> PGUtilitiesBackupFeatureTest) >>>> >>>> Test for PG utilities - Backup and Restore >>>> >>>> ---------------------------------------------------------------------- >>>> >>>> Traceback (most recent call last): >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_ >>>> utilities_backup_restore_test.py", line 97, in runTest >>>> >>>> self.page.find_by_xpath("//div[contains(@class,'wcFloatingFocus')" >>>> >>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", >>>> line 171, in find_by_xpath >>>> >>>> lambda driver: driver.find_element_by_xpath(xpath) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", >>>> line 263, in wait_for_element >>>> >>>> return self._wait_for("element to exist", element_if_it_exists) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", >>>> line 337, in _wait_for >>>> >>>> "Timed out waiting for " + waiting_for_message >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/selenium/webdriver/support/wait.py", line 80, in until >>>> >>>> raise TimeoutException(message, screen, stacktrace) >>>> >>>> TimeoutException: Message: Timed out waiting for element to exist >>>> >>>> >>>> >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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.xss_checks_pgadmin_debugger_test= . >>>> CheckDebuggerForXssFeatureTest) >>>> >>>> Tests to check if Debugger is vulnerable to XSS >>>> >>>> ---------------------------------------------------------------------- >>>> >>>> Traceback (most recent call last): >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_ >>>> checks_pgadmin_debugger_test.py", line 42, in runTest >>>> >>>> self._function_node_expandable() >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/xss_ >>>> checks_pgadmin_debugger_test.py", line 57, in _function_node_expandabl= e >>>> >>>> self.page.select_tree_item("a_test_function()") >>>> >>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", >>>> line 135, in select_tree_item >>>> >>>> "' and @class=3D'aciTreeItem']").click() >>>> >>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", >>>> line 171, in find_by_xpath >>>> >>>> lambda driver: driver.find_element_by_xpath(xpath) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", >>>> line 263, in wait_for_element >>>> >>>> return self._wait_for("element to exist", element_if_it_exists) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", >>>> line 337, in _wait_for >>>> >>>> "Timed out waiting for " + waiting_for_message >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/selenium/webdriver/support/wait.py", line 80, in until >>>> >>>> raise TimeoutException(message, screen, stacktrace) >>>> >>>> TimeoutException: Message: Timed out waiting for element to exist >>>> >>>> >>>> >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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.tools.backup.tests.test_create_backup_job. >>>> BackupJobTest) >>>> >>>> When backup the object with the default options >>>> >>>> ---------------------------------------------------------------------- >>>> >>>> Traceback (most recent call last): >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/backup/ >>>> tests/test_create_backup_job.py", line 58, in runTest >>>> >>>> self.assertNotIn >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/backup/tests/test_= backup_utils.py", >>>> line 33, in run_backup_job >>>> >>>> random.randint(1, 9999999))) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 830, in get >>>> >>>> return self.open(*args, **kw) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/testing.py", >>>> line 127, in open >>>> >>>> follow_redirects=3Dfollow_redirects) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 803, in open >>>> >>>> response =3D self.run_wsgi_app(environ, buffered=3Dbuffered) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 716, in run_wsgi_app >>>> >>>> rv =3D run_wsgi_app(self.application, environ, buffered=3Dbuffered= ) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 923, in run_wsgi_app >>>> >>>> app_rv =3D app(environ, start_response) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1997, in __call__ >>>> >>>> return self.wsgi_app(environ, start_response) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1985, in wsgi_app >>>> >>>> response =3D self.handle_exception(e) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1540, in handle_exception >>>> >>>> reraise(exc_type, exc_value, tb) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1982, in wsgi_app >>>> >>>> response =3D self.full_dispatch_request() >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1614, in full_dispatch_request >>>> >>>> rv =3D self.handle_user_exception(e) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1517, in handle_user_exception >>>> >>>> reraise(exc_type, exc_value, tb) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1612, in full_dispatch_request >>>> >>>> rv =3D self.dispatch_request() >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1598, in dispatch_request >>>> >>>> return self.view_functions[rule.endpoint](**req.view_args) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask_login.py", >>>> line 792, in decorated_view >>>> >>>> return func(*args, **kwargs) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bgprocess/__init__.= py", >>>> line 62, in index >>>> >>>> return make_response(response=3DBatchProcess.list()) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bgprocess/processes= .py", >>>> line 584, in list >>>> >>>> details =3D desc.details(p.command, args) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/backup/__init__.py= ", >>>> line 159, in details >>>> >>>> name, host, port =3D self.get_server_details() >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/backup/__init__.py= ", >>>> line 122, in get_server_details >>>> >>>> host =3D manager.local_bind_host if manager.use_ssh_tunnel else >>>> s.host >>>> >>>> AttributeError: 'NoneType' object has no attribute 'use_ssh_tunnel' >>>> >>>> >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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.tools.maintenance. >>>> tests.test_create_maintenance_job.MaintenanceJobTest) >>>> >>>> When maintenance the object with the default options >>>> >>>> ---------------------------------------------------------------------- >>>> >>>> Traceback (most recent call last): >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/maintenance/ >>>> tests/test_create_maintenance_job.py", line 71, in runTest >>>> >>>> random.randint(1, 9999999))) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 830, in get >>>> >>>> return self.open(*args, **kw) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/testing.py", >>>> line 127, in open >>>> >>>> follow_redirects=3Dfollow_redirects) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 803, in open >>>> >>>> response =3D self.run_wsgi_app(environ, buffered=3Dbuffered) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 716, in run_wsgi_app >>>> >>>> rv =3D run_wsgi_app(self.application, environ, buffered=3Dbuffered= ) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 923, in run_wsgi_app >>>> >>>> app_rv =3D app(environ, start_response) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1997, in __call__ >>>> >>>> return self.wsgi_app(environ, start_response) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1985, in wsgi_app >>>> >>>> response =3D self.handle_exception(e) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1540, in handle_exception >>>> >>>> reraise(exc_type, exc_value, tb) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1982, in wsgi_app >>>> >>>> response =3D self.full_dispatch_request() >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1614, in full_dispatch_request >>>> >>>> rv =3D self.handle_user_exception(e) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1517, in handle_user_exception >>>> >>>> reraise(exc_type, exc_value, tb) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1612, in full_dispatch_request >>>> >>>> rv =3D self.dispatch_request() >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1598, in dispatch_request >>>> >>>> return self.view_functions[rule.endpoint](**req.view_args) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask_login.py", >>>> line 792, in decorated_view >>>> >>>> return func(*args, **kwargs) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bgprocess/__init__.= py", >>>> line 62, in index >>>> >>>> return make_response(response=3DBatchProcess.list()) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bgprocess/processes= .py", >>>> line 584, in list >>>> >>>> details =3D desc.details(p.command, args) >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/backup/__init__.py= ", >>>> line 159, in details >>>> >>>> name, host, port =3D self.get_server_details() >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/backup/__init__.py= ", >>>> line 122, in get_server_details >>>> >>>> host =3D manager.local_bind_host if manager.use_ssh_tunnel else >>>> s.host >>>> >>>> AttributeError: 'NoneType' object has no attribute 'use_ssh_tunnel' >>>> >>>> >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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.tools.restore.tests.test_create_restore_job. >>>> RestoreJobTest) >>>> >>>> When restore the object with the default options >>>> >>>> ---------------------------------------------------------------------- >>>> >>>> Traceback (most recent call last): >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/restore/ >>>> tests/test_create_restore_job.py", line 95, in runTest >>>> >>>> self.create_backup() >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/restore/ >>>> tests/test_create_restore_job.py", line 86, in create_backup >>>> >>>> self.assertNotIn >>>> >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/backup/tests/test_= backup_utils.py", >>>> line 33, in run_backup_job >>>> >>>> random.randint(1, 9999999))) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 830, in get >>>> >>>> return self.open(*args, **kw) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/testing.py", >>>> line 127, in open >>>> >>>> follow_redirects=3Dfollow_redirects) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 803, in open >>>> >>>> response =3D self.run_wsgi_app(environ, buffered=3Dbuffered) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 716, in run_wsgi_app >>>> >>>> rv =3D run_wsgi_app(self.application, environ, buffered=3Dbuffered= ) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /werkzeug/test.py", >>>> line 923, in run_wsgi_app >>>> >>>> app_rv =3D app(environ, start_response) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1997, in __call__ >>>> >>>> return self.wsgi_app(environ, start_response) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1985, in wsgi_app >>>> >>>> response =3D self.handle_exception(e) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1540, in handle_exception >>>> >>>> reraise(exc_type, exc_value, tb) >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1982, in wsgi_app >>>> >>>> response =3D self.full_dispatch_request() >>>> >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /flask/app.py", >>>> line 1614, in full_dispatch_request >>>> >>>> rv =3D self.handle_user_exception(e) >>>> >>>> --0000000000006c3de1056e84e433 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Victoria,


=
On Tue, Jun 12, 2018 at 9:06 PM, Victoria Henry = <vhenry@pivotal.io> wrote:
Hi Khushboo
can you explain a little bit more this wh= ile loop?

cnt= =3D 0
while 1:
if cnt > 1
:
break
= # Check the process list
=
response1 =3D self.tester.get('/misc/bgprocess/?_=3D'.format(
= random.randint(1, 9999999)))
self.assertEquals(response1.status_code, 200)
= process_list =3D json.loads(response1.data.decode('utf-8'))

if len
(process_list) > 0 and 'execution_time' in process_list[0]: break
time.sleep(0.5)
cnt +=3D 1
From what it looks like this will only run twice, maybe = a for would be a better solution because we know it will only run twice. Al= so are we sure we only want it to run twice?

The code waits till the background process completes. So, whi= le I originally developed, not intended to run only twice.=C2=A0
= But after that I put a kind of break point and that remains there. So, I wi= ll remove that if condition which is not required.
We are using PyCharm to do o= ur developments and we notice there are a big group of unused variables thr= oughout. We should remove them if they are not needed. Not sure if your edi= tor also shows that information or not.=C2=A0=C2=A0
Do you know if there = is a configuration in pycodestyle to enable the check for unused variables?= That would help a lot.

Thanks = for sharing the information.=C2=A0
The code
assert 'execution_time' in process_list[0]
assert= 'stime' in process_list[0]
asser= t 'exit_code' <= span style=3D"color:rgb(204,120,50)">in process_list[0]
= assert process_list[0]= ['exit_code'] in self.expected_exit_code

self.assertEqual or similar from unittest instead of plain assert. Because when something fails we do not have a = way to understand what was wrong.

Will= do.=C2=A0

The tests on the restore are still failing GreenPlum.

=
It is failing because, Restore is not working= with GreenPlum. Can you please look into the Restore functionality for GPD= B?


Thanks,
Khushboo=C2=A0=
=E2=80=8B



Thanks
Victoria & Joao

On Tue, Jun 12, 2018 at 6:44 AM Khushb= oo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Please find the attached updated p= atch with some code cleanup.

On Tue, Jun 12, 2018 at 3:54 PM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi,

Please fin= d the attached patch excluding feature test cases.
Python test ca= ses are working fine, so we can commit this patch. I am working on fixing t= he feature tests which are failing on the different window sizes.

Thanks,
Khushboo

On Fri, Jun 8, 2018 at 2:38 PM, Dave Pa= ge <dpage@pgadmin.org> wrote:
Hi

On Fri, Jun 8, 2018 at 6:33 AM, Khushboo Vashi = <kh= ushboo.vashi@enterprisedb.com> wrote:
Hi Dave,

As per our dis= cussion I have changed the window size to 1280X800, before it was 1280X900.=
Please find the attached updated patch
=
=C2=A0
I'm not sure that actual= ly made any difference on my system. The window continued to look taller th= an it is wide, so I wonder if the code to set the size is being ignored, or= is at the wrong place?

Anyway, I got 10 failures = with this patch :-(

=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=

ERR= OR: runTest (pgadmin.feature_tests.pg_utilities_backup_restore_test.PGUtilitiesBackupFeatureTest)

Tes= t for PG utilities - Backup and Restore

---= -----------------------------------------------------------------= --

Tra= ceback (most recent call last):

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/feature= _tests/pg_utilities_backup_restore_test.py", line 97, in run= Test

= =C2=A0 =C2=A0 self.page.find_by_xpath("//div[contains(@cla= ss,'wcFloatingFocus')"

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/feat= ure_utils/pgadmin_page.py", line 171, in find_by_xpath

= =C2=A0 =C2=A0 lambda driver: driver.find_element_by_xpath(xpath= )

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/feat= ure_utils/pgadmin_page.py", line 263, in wait_for_element<= /p>

= =C2=A0 =C2=A0 return self._wait_for("element to exist", el= ement_if_it_exists)

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/feat= ure_utils/pgadmin_page.py", line 337, in _wait_for

= =C2=A0 =C2=A0 "Timed out waiting for " + waiting_for_messa= ge

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/selenium/webdriver/support/wait.py", line = 80, in until

= =C2=A0 =C2=A0 raise TimeoutException(message, screen, stacktrace)

Tim= eoutException: Message: Timed out waiting for element to exist



=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=

ERR= OR: runTest (pgadmin.feature_tests.xss_checks_pgadmin_debugger_test.CheckDebuggerForXssFeatureTest)

Tes= ts to check if Debugger is vulnerable to XSS

---= -----------------------------------------------------------------= --

Tra= ceback (most recent call last):

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/feature= _tests/xss_checks_pgadmin_debugger_test.py", line 42, in run= Test

= =C2=A0 =C2=A0 self._function_node_expandable()

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/feature= _tests/xss_checks_pgadmin_debugger_test.py", line 57, in _fu= nction_node_expandable

= =C2=A0 =C2=A0 self.page.select_tree_item("a_test_function(= )")

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/feat= ure_utils/pgadmin_page.py", line 135, in select_tree_item<= /p>

= =C2=A0 =C2=A0 "' and @class=3D'aciTreeItem']")= .click()

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/feat= ure_utils/pgadmin_page.py", line 171, in find_by_xpath

= =C2=A0 =C2=A0 lambda driver: driver.find_element_by_xpath(xpath= )

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/feat= ure_utils/pgadmin_page.py", line 263, in wait_for_element<= /p>

= =C2=A0 =C2=A0 return self._wait_for("element to exist", el= ement_if_it_exists)

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/regression/feat= ure_utils/pgadmin_page.py", line 337, in _wait_for

= =C2=A0 =C2=A0 "Timed out waiting for " + waiting_for_messa= ge

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/selenium/webdriver/support/wait.py", line = 80, in until

= =C2=A0 =C2=A0 raise TimeoutException(message, screen, stacktrace)

Tim= eoutException: Message: Timed out waiting for element to exist



=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=

ERR= OR: runTest (pgadmin.tools.backup.tests.test_create_backup_job.Ba= ckupJobTest)

Whe= n backup the object with the default options

---= -----------------------------------------------------------------= --

Tra= ceback (most recent call last):

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/b= ackup/tests/test_create_backup_job.py", line 58, in runTest<= /span>

= =C2=A0 =C2=A0 self.assertNotIn

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/b= ackup/tests/test_backup_utils.py", line 33, in run_backup_job

= =C2=A0 =C2=A0 random.randint(1, 9999999)))

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 830, in get

= =C2=A0 =C2=A0 return self.open(*args, **kw)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/testing.py", line 127, in open

= =C2=A0 =C2=A0 follow_redirects=3Dfollow_redirects)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 803, in open

= =C2=A0 =C2=A0 response =3D self.run_wsgi_app(environ, buffered=3Dbuf= fered)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 716, in run_wsgi_app

= =C2=A0 =C2=A0 rv =3D run_wsgi_app(self.application, environ, buffere= d=3Dbuffered)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 923, in run_wsgi_app

= =C2=A0 =C2=A0 app_rv =3D app(environ, start_response)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1997, in __call__

= =C2=A0 =C2=A0 return self.wsgi_app(environ, start_response)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1985, in wsgi_app

= =C2=A0 =C2=A0 response =3D self.handle_exception(e)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1540, in handle_exception

= =C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1982, in wsgi_app

= =C2=A0 =C2=A0 response =3D self.full_dispatch_request()

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1614, in full_dispatch_requ= est

= =C2=A0 =C2=A0 rv =3D self.handle_user_exception(e)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1517, in handle_user_except= ion

= =C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1612, in full_dispatch_requ= est

= =C2=A0 =C2=A0 rv =3D self.dispatch_request()

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1598, in dispatch_request

= =C2=A0 =C2=A0 return self.view_functions[rule.endpoint](**req.v= iew_args)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask_login.py", line 792, in decorated_view

= =C2=A0 =C2=A0 return func(*args, **kwargs)

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bg= process/__init__.py", line 62, in index

= =C2=A0 =C2=A0 return make_response(response=3DBatchProcess.list= ())

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bg= process/processes.py", line 584, in list

= =C2=A0 =C2=A0 details =3D desc.details(p.command, args)

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/b= ackup/__init__.py", line 159, in details

= =C2=A0 =C2=A0 name, host, port =3D self.get_server_details()<= /p>

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/b= ackup/__init__.py", line 122, in get_server_details

= =C2=A0 =C2=A0 host =3D manager.local_bind_host if manager.use_ssh_tu= nnel else s.host

Att= ributeError: 'NoneType' object has no attribute 'use_ssh_tunnel= '


=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=

ERR= OR: runTest (pgadmin.tools.maintenance.tests.test_create_maintenance_<= wbr>job.MaintenanceJobTest)

Whe= n maintenance the object with the default options

---= -----------------------------------------------------------------= --

Tra= ceback (most recent call last):

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/m= aintenance/tests/test_create_maintenance_job.py", line 71, i= n runTest

= =C2=A0 =C2=A0 random.randint(1, 9999999)))

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 830, in get

= =C2=A0 =C2=A0 return self.open(*args, **kw)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/testing.py", line 127, in open

= =C2=A0 =C2=A0 follow_redirects=3Dfollow_redirects)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 803, in open

= =C2=A0 =C2=A0 response =3D self.run_wsgi_app(environ, buffered=3Dbuf= fered)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 716, in run_wsgi_app

= =C2=A0 =C2=A0 rv =3D run_wsgi_app(self.application, environ, buffere= d=3Dbuffered)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 923, in run_wsgi_app

= =C2=A0 =C2=A0 app_rv =3D app(environ, start_response)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1997, in __call__

= =C2=A0 =C2=A0 return self.wsgi_app(environ, start_response)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1985, in wsgi_app

= =C2=A0 =C2=A0 response =3D self.handle_exception(e)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1540, in handle_exception

= =C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1982, in wsgi_app

= =C2=A0 =C2=A0 response =3D self.full_dispatch_request()

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1614, in full_dispatch_requ= est

= =C2=A0 =C2=A0 rv =3D self.handle_user_exception(e)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1517, in handle_user_except= ion

= =C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1612, in full_dispatch_requ= est

= =C2=A0 =C2=A0 rv =3D self.dispatch_request()

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1598, in dispatch_request

= =C2=A0 =C2=A0 return self.view_functions[rule.endpoint](**req.v= iew_args)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask_login.py", line 792, in decorated_view

= =C2=A0 =C2=A0 return func(*args, **kwargs)

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bg= process/__init__.py", line 62, in index

= =C2=A0 =C2=A0 return make_response(response=3DBatchProcess.list= ())

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/misc/bg= process/processes.py", line 584, in list

= =C2=A0 =C2=A0 details =3D desc.details(p.command, args)

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/b= ackup/__init__.py", line 159, in details

= =C2=A0 =C2=A0 name, host, port =3D self.get_server_details()<= /p>

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/b= ackup/__init__.py", line 122, in get_server_details

= =C2=A0 =C2=A0 host =3D manager.local_bind_host if manager.use_ssh_tu= nnel else s.host

Att= ributeError: 'NoneType' object has no attribute 'use_ssh_tunnel= '


=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=

ERR= OR: runTest (pgadmin.tools.restore.tests.test_create_restore_job.= RestoreJobTest)

Whe= n restore the object with the default options

---= -----------------------------------------------------------------= --

Tra= ceback (most recent call last):

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/r= estore/tests/test_create_restore_job.py", line 95, in runTes= t

= =C2=A0 =C2=A0 self.create_backup()

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/r= estore/tests/test_create_restore_job.py", line 86, in create= _backup

= =C2=A0 =C2=A0 self.assertNotIn

= =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/b= ackup/tests/test_backup_utils.py", line 33, in run_backup_job

= =C2=A0 =C2=A0 random.randint(1, 9999999)))

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 830, in get

= =C2=A0 =C2=A0 return self.open(*args, **kw)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/testing.py", line 127, in open

= =C2=A0 =C2=A0 follow_redirects=3Dfollow_redirects)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 803, in open

= =C2=A0 =C2=A0 response =3D self.run_wsgi_app(environ, buffered=3Dbuf= fered)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 716, in run_wsgi_app

= =C2=A0 =C2=A0 rv =3D run_wsgi_app(self.application, environ, buffere= d=3Dbuffered)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/werkzeug/test.py", line 923, in run_wsgi_app

= =C2=A0 =C2=A0 app_rv =3D app(environ, start_response)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1997, in __call__

= =C2=A0 =C2=A0 return self.wsgi_app(environ, start_response)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1985, in wsgi_app

= =C2=A0 =C2=A0 response =3D self.handle_exception(e)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1540, in handle_exception

= =C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1982, in wsgi_app

= =C2=A0 =C2=A0 response =3D self.full_dispatch_request()

= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 2.7/site-packages/flask/app.py", line 1614, in full_dispatch_requ= est

= =C2=A0 =C2=A0 rv =3D self.handle_user_exception(e)


--0000000000006c3de1056e84e433--