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 1fQ2pF-00008y-9r for pgadmin-hackers@arkaria.postgresql.org; Tue, 05 Jun 2018 03:40:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fQ2pD-00031S-AB for pgadmin-hackers@arkaria.postgresql.org; Tue, 05 Jun 2018 03:39:59 +0000 Received: from makus.postgresql.org ([174.143.35.229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fQ2pC-00030u-FY for pgadmin-hackers@lists.postgresql.org; Tue, 05 Jun 2018 03:39:59 +0000 Received: from mail-oi0-x241.google.com ([2607:f8b0:4003:c06::241]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fQ2p7-0000s3-8e for pgadmin-hackers@postgresql.org; Tue, 05 Jun 2018 03:39:56 +0000 Received: by mail-oi0-x241.google.com with SMTP id i205-v6so769865oib.1 for ; Mon, 04 Jun 2018 20:39:52 -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=ekMY+hZDgsXUD00RH9o6CU47mZ6ZftdgGGp4JqNoIOE=; b=XZSeL2n04nyBbonOflSEudDwyP8akyQ1a0ffBOuUxWAeP/r9mwZL1wQ5KEau84NLzV WppKcWitrXIsPQ+b2jKu3SyW5igSSYl0vr1HO/G/Z7cNUnSAGPVJhwdcUgOr6Q6WpMG7 3m9VHNlQG6j8m3afuyngrtBdZJ+Oa45WwlnIlxs2JxxLze+35ZV0YMHbtxEIxRoMlj3c GOMSRucW0RJ33N648rEyWp+E3bLMAaWxoxvAWvYKIORJyvStK83uG5roYBzp6AyITIu0 3T/ytHuKKtPh0wJ9i/OW+d6ekbkdUYQbe/IF9BQOByW4I7B4LUhryUyErSdTvFlbrrq4 FL0w== 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=ekMY+hZDgsXUD00RH9o6CU47mZ6ZftdgGGp4JqNoIOE=; b=OisTdh5X6Q73gQJ1m2dvVNomAL+nGDaz+rctuyFA5DKp0EkQ0BrFENsudksfcY/nfy mTFR4d7/4DzsFGcXQpp8nVm0Q7jSUHu2AeLFeMirym4IKtTQR++1i4oYhQNyAGYU+06w Ii55YRogN5XS0UUVOtWRUh/IggjZfAVyMznXnOHLBGv8XfGXXSVKWUYQqMpmiXBAl4KF bDnUTX/+asa0WMjKY58Y5Hk+tP0CiJQcRmm99X/SXOFOw3Yy3k5Njwdn74g2mxGbarQ8 fjP3xiscLBEVfsxhfuk/vlQu9Zo+SNdiNKjMWDnstrD+3+7XyaAf7qjoGE65h+tuSgDA 35Aw== X-Gm-Message-State: ALKqPwdpvSS4cxTvmVZCtsc6L9ilWbNgbTdEDerFW4rVUlELkbub0z8z BIQ78/NhaIYsNlipi6XKvpuVj84h1MnctETULECd4g== X-Google-Smtp-Source: ADUXVKLvkE/VCa+2xwTcwfOZ+gXGNyJvZ7rrMIIO26ol1NLgLy/Ihje2BYE6lYVNij6emD+aq02eHZMlpZ23v09Jjoc= X-Received: by 2002:aca:5a09:: with SMTP id o9-v6mr14001923oib.127.1528169992234; Mon, 04 Jun 2018 20:39:52 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:5301:0:0:0:0:0 with HTTP; Mon, 4 Jun 2018 20:39:51 -0700 (PDT) In-Reply-To: References: From: Khushboo Vashi Date: Tue, 5 Jun 2018 09:09:51 +0530 Message-ID: Subject: Re: [pgadmin4][Patch]: Test cases for the backup module To: Joao De Almeida Pereira Cc: Dave Page , Victoria Henry , pgadmin-hackers Content-Type: multipart/alternative; boundary="0000000000008b3f43056ddccd60" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000008b3f43056ddccd60 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jun 4, 2018 at 8:41 PM, Joao De Almeida Pereira < jdealmeidapereira@pivotal.io> wrote: > Hi Khushboo, > > Some tests are failing in greenplum: > https://gpdb-dev.bosh.pivotalci.info/teams/pgadmin/ > pipelines/pgadmin-patch/jobs/run-tests/builds/108 > The piece of code responsible for the error is: > > if server['default_binary_paths'] is not None: > test_utils.set_preference(server['default_binary_paths']) > > config.DEFAULT_BINARY_PATHS =3D { > "pg": str(server['default_binary_paths']['pg']), > "ppas": str(server['default_binary_paths']['ppas']), > "gpdb": "" > } > > > Can you send me the test_config.json file? The above code sets the paths to the SQLite database and through the logs couldn't figure out the exact failure. > test_backup_utils.py file name is misleading, these are not tests, are > helpers. > =E2=80=8B > > > Thanks > Victoria & Joao > > On Mon, Jun 4, 2018 at 1:36 AM Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> >> >> On Sat, Jun 2, 2018 at 3:01 AM, Dave Page wrote: >> >>> Hi >>> >>> This looks good, except that it's leaving the test_restore_database >>> behind. Can we clean that up please? >>> >>> PFA updated patch. >> >>> Thanks. >>> >>> On Fri, Jun 1, 2018 at 7:06 AM, Khushboo Vashi < >>> khushboo.vashi@enterprisedb.com> wrote: >>> >>>> Hi Victoria, >>>> >>>> Thanks for reviewing the patch. >>>> The tests were failing due to the latest commit # >>>> 2b4605a9d390cb44e5dfe9967c3adf2b28d04f1f - Ensure >>>> backup/restore/maintenance work via SSH tunnels. Fixes #3355 >>>> >>>> I have fixed the issues and attached the updated patch. >>>> >>>> Thanks, >>>> Khushboo >>>> >>>> On Thu, May 31, 2018 at 10:00 PM, Victoria Henry >>>> wrote: >>>> >>>>> Hi there, >>>>> >>>>> We've been noticing some issues with the tests on both our CI and >>>>> local Mac workstations. >>>>> >>>>> 1. When the following code blocks are invoked - we get plenty of >>>>> app.context() issues. It must not be valid when running tests. >>>>> >>>>> =E2=80=8B >>>>> >>>>> from pgadmin.utils.driver import get_driver >>>>> driver =3D get_driver(PG_DEFAULT_DRIVER) >>>>> manager =3D driver.connection_manager(self.sid) >>>>> >>>>> host =3D manager.local_bind_host if manager.use_ssh_tunnel else s.hos= t >>>>> port =3D manager.local_bind_port if manager.use_ssh_tunnel else s.por= t >>>>> >>>>> 2. When we finally enable >>>>> >>>>> "default_binary_paths": { >>>>> >>>>> in our test_config, we get more failing tests that look like: >>>>> >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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.tools.restore.tests.test_restore_create_job_un= it_test.RestoreCreateJobTest) >>>>> When restore object with option - Miscellaneous >>>>> ---------------------------------------------------------------------= - >>>>> Traceback (most recent call last): >>>>> File "/Users/pivotal/.pyenv/versions/3.6.5/lib/python3.6/unittest/m= ock.py", line 1179, in patched >>>>> return func(*args, **keywargs) >>>>> File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/tools/restore/t= ests/test_restore_create_job_unit_test.py", line 295, in runTest >>>>> self.assertEquals(response.status_code, 200) >>>>> AssertionError: 410 !=3D 200 >>>>> >>>>> And >>>>> >>>>> When restore object with the sections options ... 2018-05-31 12:24:42= ,988: ERROR pgadmin: illegal environment variable name >>>>> Traceback (most recent call last): >>>>> File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/tools/restore/_= _init__.py", line 352, in create_restore_job >>>>> manager.export_password_env(p.id) >>>>> File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/utils/driver/ps= ycopg2/server_manager.py", line 365, in export_password_env >>>>> os.environ[str(env)] =3D password >>>>> File "/Users/pivotal/.pyenv/versions/3.6.5/lib/python3.6/os.py", li= ne 675, in __setitem__ >>>>> self.putenv(key, value) >>>>> ValueError: illegal environment variable name >>>>> FAIL >>>>> >>>>> =E2=80=8B >>>>> >>>>> Sincerely, >>>>> >>>>> Victoria && Anthony >>>>> >>>>> On Thu, May 31, 2018 at 1:16 AM Khushboo Vashi < >>>>> khushboo.vashi@enterprisedb.com> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> Please find the attached updated patch with the fixes. >>>>>> The test cases were only failing on MAC not on Linux. >>>>>> >>>>>> Thanks, >>>>>> Khushboo >>>>>> >>>>>> On Wed, May 30, 2018 at 10:13 AM, Khushboo Vashi < >>>>>> khushboo.vashi@enterprisedb.com> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, May 30, 2018 at 1:05 AM, Dave Page >>>>>>> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> On Mon, May 28, 2018 at 8:09 AM, Khushboo Vashi < >>>>>>>> khushboo.vashi@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> please find the attached updated patch for the test cases of >>>>>>>>> Backup, Restore and Maintenance modules which includes: >>>>>>>>> >>>>>>>>> 1. Unit test cases >>>>>>>>> 2. End to end regression test cases >>>>>>>>> 3. Feature test cases >>>>>>>>> >>>>>>>> >>>>>>>> Thanks. I've yet to be able to run the feature tests successfully. >>>>>>>> Here's what I've found so far: >>>>>>>> >>>>>>>> 1) DEFAULT_BINARY_PATHS should be default_binary_paths in the JSON >>>>>>>> config file. >>>>>>>> >>>>>>>> Will do. >>>>>>> >>>>>>>> 2) I've hit screensize related issues: >>>>>>>> >>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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_maintenance_test.PGUtilitiesMaintenanceFeatureTest) >>>>>>>> >>>>>>>> Test for PG maintenance: database >>>>>>>> >>>>>>>> ------------------------------------------------------------ >>>>>>>> ---------- >>>>>>>> >>>>>>>> Traceback (most recent call last): >>>>>>>> >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_ >>>>>>>> utilities_maintenance_test.py", line 56, in runTest >>>>>>>> >>>>>>>> self._open_maintenance_dialogue() >>>>>>>> >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_ >>>>>>>> utilities_maintenance_test.py", line 75, in >>>>>>>> _open_maintenance_dialogue >>>>>>>> >>>>>>>> "*[.=3D'" + self.table_name + "']/../*[@class=3D'aciTreeItem'" >>>>>>>> >>>>>>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>>>>>> packages/selenium/webdriver/remote/webelement.py", line 80, in >>>>>>>> click >>>>>>>> >>>>>>>> self._execute(Command.CLICK_ELEMENT) >>>>>>>> >>>>>>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>>>>>> packages/selenium/webdriver/remote/webelement.py", line 628, in >>>>>>>> _execute >>>>>>>> >>>>>>>> return self._parent.execute(command, params) >>>>>>>> >>>>>>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>>>>>> packages/selenium/webdriver/remote/webdriver.py", line 312, in >>>>>>>> execute >>>>>>>> >>>>>>>> self.error_handler.check_response(response) >>>>>>>> >>>>>>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>>>>>> packages/selenium/webdriver/remote/errorhandler.py", line 242, in >>>>>>>> check_response >>>>>>>> >>>>>>>> raise exception_class(message, screen, stacktrace) >>>>>>>> >>>>>>>> WebDriverException: Message: unknown error: Element >>>>>>> class=3D"aciTreeItem">... is not clickable at point (223, 6= 04). Other >>>>>>>> element would receive the click:
>>>>>>> wcPanelBackground wcScrollableX wcScrollableY" style=3D"left: 0px;= right: >>>>>>>> 0px; bottom: 0px;">...
>>>>>>>> >>>>>>>> (Session info: chrome=3D66.0.3359.181) >>>>>>>> >>>>>>>> (Driver info: chromedriver=3D2.38.552518 ( >>>>>>>> 183d19265345f54ce39cbb94cf81ba5f15905011),platform=3DMac OS X >>>>>>>> 10.12.6 x86_64) >>>>>>>> >>>>>>>> 3) One time the test did start, but then I saw this 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 >>>>>>>> >>>>>>>> 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 93, in runTest >>>>>>>> >>>>>>>> self.page.fill_input_by_field_name("file", "test_backup_file") >>>>>>>> >>>>>>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pga= dmin_page.py", >>>>>>>> line 211, in fill_input_by_field_name >>>>>>>> >>>>>>>> self.wait_for_input_field_content(field_name, field_content) >>>>>>>> >>>>>>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pga= dmin_page.py", >>>>>>>> line 251, in wait_for_input_field_content >>>>>>>> >>>>>>>> "field to contain '" + str(content) + "'", >>>>>>>> input_field_has_content >>>>>>>> >>>>>>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pga= dmin_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 field to contain >>>>>>>> 'test_backup_file' >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> (with screenshot attached) >>>>>>>> >>>>>>>> Thanks. >>>>>>>> >>>>>>>> I have ran the feature tests with multiple servers many times but >>>>>>> didn't get a single failure. >>>>>>> I have asked Akshay to run on his machine, let see what he gets. >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Khushboo >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Apr 25, 2018 at 9:40 PM, Joao De Almeida Pereira < >>>>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>>>> >>>>>>>>>> Hi Khushboo, >>>>>>>>>> >>>>>>>>>> We reviewed the patch and it is very nice to see some more >>>>>>>>>> coverage in this area. Good job :D >>>>>>>>>> >>>>>>>>>> We passed the tests through our CI the feature tests are not >>>>>>>>>> passing, but the linter fails: >>>>>>>>>> >>>>>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:37: [E501] l= ine too long (91 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:53: [E501] l= ine too long (104 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:59: [E501] l= ine too long (85 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:62: [E501] l= ine too long (96 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:63: [E501] l= ine too long (91 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:70: [E501] l= ine too long (118 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:37: [E121] c= ontinuation line under-indented for hanging indent >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:48: [E122] c= ontinuation line missing indentation or outdented >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:49: [E251] u= nexpected spaces around keyword / parameter equals >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:49: [E251] u= nexpected spaces around keyword / parameter equals >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:51: [E501] l= ine too long (91 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:52: [E501] l= ine too long (94 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:53: [E501] l= ine too long (108 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:81: [E501] l= ine too long (113 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:82: [E501] l= ine too long (94 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:83: [E501] l= ine too long (108 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:111: [E501] = line too long (100 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:113: [E501] = line too long (94 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:114: [E501] = line too long (108 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:147: [E501] = line too long (93 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:40: [E121] co= ntinuation line under-indented for hanging indent >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:51: [E122] co= ntinuation line missing indentation or outdented >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:135: [E501] l= ine too long (80 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:137: [E501] l= ine too long (83 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:138: [E122] c= ontinuation line missing indentation or outdented >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:139: [E122] c= ontinuation line missing indentation or outdented >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:140: [E122] c= ontinuation line missing indentation or outdented >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:191: [E501] l= ine too long (81 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:203: [E501] l= ine too long (80 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:204: [E128] c= ontinuation line under-indented for visual indent >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:204: [E501] l= ine too long (94 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:205: [E128] c= ontinuation line under-indented for visual indent >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:205: [E501] l= ine too long (94 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:216: [W391] b= lank line at end of file >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_create_backup_job.py:296: [E50= 1] line too long (97 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_create_backup_job.py:317: [E30= 3] too many blank lines (2) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_create_backup_job.py:336: [E50= 1] line too long (84 > 79 characters) >>>>>>>>>> >>>>>>>>>> ./pgadmin/tools/backup/tests/test_create_backup_job.py:371: [W39= 1] blank line at end of file >>>>>>>>>> >>>>>>>>>> 2 E121 continuation line under-indented for hanging indent >>>>>>>>>> >>>>>>>>>> 5 E122 continuation line missing indentation or outdented >>>>>>>>>> >>>>>>>>>> 2 E128 continuation line under-indented for visual indent >>>>>>>>>> >>>>>>>>>> 2 E251 unexpected spaces around keyword / parameter equals >>>>>>>>>> >>>>>>>>>> 1 E303 too many blank lines (2) >>>>>>>>>> >>>>>>>>>> 24 E501 line too long (91 > 79 characters) >>>>>>>>>> >>>>>>>>>> 2 W391 blank line at end of file >>>>>>>>>> >>>>>>>>>> 38 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> For the feature tests, we realized we had to update the >>>>>>>>>> configuration, and we did that, but we get the following error a= ttached. We >>>>>>>>>> spent some time trying to understand the problem but we were not= successful. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Codewise: >>>>>>>>>> - We just found some One Letter Variables in the code... >>>>>>>>>> - Looks like there is a bug report in this area of the code and >>>>>>>>>> we do not have coverage for it: https://redmine. >>>>>>>>>> postgresql.org/issues/3232 >>>>>>>>>> Looks like in some of the unit tests we only have happy path >>>>>>>>>> tests, maybe we should see if there are any sad paths that also = need >>>>>>>>>> coverage. >>>>>>>>>> >>>>>>>>>> The configuration change, maybe need to be updated. When we >>>>>>>>>> install multiple versions of postgres the binaries live in >>>>>>>>>> `/usr/lib/postgresql/{{db_version}}/bin`, which makes us think >>>>>>>>>> that this configuration should live near the server configuratio= n, maybe? >>>>>>>>>> Also to maintain coherency on the naming maybe we should make it= all lower >>>>>>>>>> case. >>>>>>>>>> Just as an aside, you can add the gpdb configuration as well in >>>>>>>>>> you patch. >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>> Victoria & Joao >>>>>>>>>> >>>>>>>>>> On Wed, Apr 25, 2018 at 5:20 AM Khushboo Vashi < >>>>>>>>>> khushboo.vashi@enterprisedb.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> Please find the attached patch which covers test cases for the >>>>>>>>>>> backup module (RM #3206). >>>>>>>>>>> >>>>>>>>>>> 1. Unit test cases >>>>>>>>>>> 2. End to end regression test cases >>>>>>>>>>> 3. Feature test cases >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Khushboo >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> 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 >>> >> >> --0000000000008b3f43056ddccd60 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Mon, Jun 4, 2018 at 8:41 PM, Joao De Almeida Pereira <jd= ealmeidapereira@pivotal.io> wrote:
Hi Khushboo,

Some tests are fai= ling in greenplum:
The piec= e of code responsible for the error is:
if serv=
er['default_binary_paths'] is not None:
test_= utils.set_preference(server['= ;default_binary_paths'])

config.DEFAULT_BINARY_P= ATHS =3D {
"pg"<= /span>: str(server['default_binary_paths']['pg']),
= "ppas": str
(server['default_binary_paths']['ppas']),
= "gpdb": ""
}

Can you se= nd me the test_config.json file?=C2=A0 The above code sets the paths to the= SQLite database and through the logs couldn't figure out the exact fai= lure.=C2=A0

test_backup_utils.py file name is misleading, these are not tests, are helpers.

=E2=80=8B
=


Thanks
Victoria &a= mp; Joao

On Mon, Jun 4, 2018 at 1:36 AM Khushboo V= ashi <khushboo.vashi@enterprisedb.com> wrote:


On Sat, Jun 2, 2018 at 3:01 AM, Dave Page <dpage@p= gadmin.org> wrote:
Hi

This looks good, except that it's leavin= g the test_restore_database behind. Can we clean that up please?
=
PFA updated patch.=C2=A0
Thanks.
=
On Fri, Jun 1, 2018 at 7:06 AM, Khushboo Vas= hi <khushboo.vashi@enterprisedb.com> wrot= e:
Hi Victoria,

=
Thanks for reviewing the patch.
The tests were failing= due to the latest commit #2b4605a9d390cb44e5dfe9967c3adf2b28d04f= 1f=C2=A0 - Ensure backup/restore/maintenance work via SSH tunnels. Fixes #3= 355

I have fixed the issues and attached the updat= ed patch.

Thanks,
Khushboo=C2=A0

On Thu, May 31, 2018 at 10:00 PM, Victoria Henry &= lt;vhenry@pivotal.io= > wrote:
H= i there,

We've been noticing some issues with the te= sts on both our CI and local Mac workstations.
  1. When the following code blocks are invoked -= we get plenty of app.context() issues. It must not= be valid when running tests.
=E2=80=8B
=
from pgadmin.utils.driver import get_driver
driver =3D get_driver(PG_DEFAULT_DR= IVER)
manager =3D driver.connection_manager(self.sid)

host =3D manager.local_bind_host if manager.use_ssh_tunnel else s.host
port =3D manager.local= _bind_port if manager.use_ssh_= tunnel else s.port=C2=A0
=
2. When we finally enable=C2=A0
"default_binary_=
paths": {
in our test_config, we get more failing tests that look like:
=
=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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.tools.restore.tests.test_restore_create_job_uni=
t_test.RestoreCreateJobTest)
When restore object with option - Miscellaneous
-----------------------------------------------------------------=
-----
Traceback (most recent call last):
  File "/Users/pivotal/.pyenv/versions/3.6.5/lib/python3.6/u=
nittest/mock.py", line 1179, in patched
    return func(*args, **keywargs)
  File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/tools/=
restore/tests/test_restore_create_job_unit_test.py", line 295, in=
 runTest
    self.assertEquals(response.status_code, 200)
AssertionError: 410 !=3D 200

And

When restore object =
with the sections options ... 2018-05-31 12:24:42,988: ERROR    pgadmin:   =
 illegal environment variable name
Traceback (most recent call last):
  File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/tools/=
restore/__init__.py", line 352, in create_restore_job
    manager.export_password_env(p=
.id)
  File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/utils/=
driver/psycopg2/server_manager.py", line 365, in export_password_=
env
    os.environ[str(env)] =3D password
  File "/Users/pivotal/.pyenv/versions/3.6.5/lib/python3.6/o=
s.py", line 675, in __setitem__
    self.putenv(key, value)
ValueError: illegal environment variable name
FAIL
=E2=80=8B
=

Sincerely,

Vi= ctoria && Anthony

On = Thu, May 31, 2018 at 1:16 AM Khushboo Vashi <khushboo.vashi@enterprisedb.= com> wrote:
Hi,

Please find the attached updated patch with the fix= es.
The test cases were only failing on MAC not on Linux.

Thanks,
Khushboo

On Wed, May 30, 2018 at 10:13 AM, Kh= ushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:


On Wed, May 30, 20= 18 at 1:05 AM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Mon, May 28, 2018 at 8:09 AM, Khus= hboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi,
please find the attached updated patch for the test = cases of Backup, Restore and Maintenance modules which includes:

1. Unit test cases
2. End to end regression test = cases=C2=A0
3. Feature test cases

Thanks. I've yet to be able to run the feat= ure tests successfully. Here's what I've found so far:
1) DEFAULT_BINARY_PATHS should be default_binary_paths in the = JSON config file.

Will do.=C2=A0
2) I= 9;ve hit screensize related issues:

=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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: runTes= t (pgadmin.feature_tests.pg_utilities_maintenance_test.PGUtilitie= sMaintenanceFeatureTest)

Test for PG m= aintenance: database

-------------= ---------------------------------------------------------<= /p>

Traceback (mo= st recent call last):

=C2=A0 File &qu= ot;/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utiliti= es_maintenance_test.py", line 56, in runTest

=C2=A0 =C2=A0 s= elf._open_maintenance_dialogue()

=C2=A0 File &qu= ot;/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utiliti= es_maintenance_test.py", line 75, in _open_maintenance_dialogue

=C2=A0 =C2=A0 &= quot;*[.=3D'" + self.table_name + "']/../*[@class=3D'= aciTreeItem'"

=C2=A0 File &qu= ot;/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /selenium/webdriver/remote/webelement.py", line 80, in click

=C2=A0 =C2=A0 s= elf._execute(Command.CLICK_ELEMENT)

=C2=A0 File &qu= ot;/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /selenium/webdriver/remote/webelement.py", line 628, in _execute<= /span>

=C2=A0 =C2=A0 r= eturn self._parent.execute(command, params)

=C2=A0 File &qu= ot;/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /selenium/webdriver/remote/webdriver.py", line 312, in execute

=C2=A0 =C2=A0 s= elf.error_handler.check_response(response)

=C2=A0 File &qu= ot;/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /selenium/webdriver/remote/errorhandler.py", line 242, in check_r= esponse

=C2=A0 =C2=A0 r= aise exception_class(message, screen, stacktrace)

WebDriverExce= ption: Message: unknown error: Element <span class=3D"aciTreeItem&q= uot;>...</span> is not clickable at point (223, 604). Other elemen= t would receive the click: <div class=3D"wcFrameCenter wcPanelBackg= round wcScrollableX wcScrollableY" style=3D"left: 0px; right: 0px= ; bottom: 0px;">...</div>

=C2=A0 (Session= info: chrome=3D66.0.3359.181)

=C2=A0 (Driver = info: chromedriver=3D2.38.552518 (183d19265345f54ce39cbb94cf81ba5= f15905011),platform=3DMac OS X 10.12.6 x86_64)


3) One time the test did start, but then I saw this 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

ERROR: runTes= t (pgadmin.feature_tests.pg_utilities_backup_restore_test.PGUtili= tiesBackupFeatureTest)

Test for PG u= tilities - Backup and Restore

-------------= ---------------------------------------------------------<= /p>

Traceback (mo= st recent call last):

=C2=A0 File &qu= ot;/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utiliti= es_backup_restore_test.py", line 93, in runTest

=C2=A0 =C2=A0 s= elf.page.fill_input_by_field_name("file", "test_backup_= file")

=C2=A0 File &qu= ot;/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", line 211, in fill_input_by_field_name

=C2=A0 =C2=A0 s= elf.wait_for_input_field_content(field_name, field_content)

=C2=A0 File &qu= ot;/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", line 251, in wait_for_input_field_content

=C2=A0 =C2=A0 &= quot;field to contain '" + str(content) + "'", input= _field_has_content

=C2=A0 File &qu= ot;/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin= _page.py", line 337, in _wait_for

=C2=A0 =C2=A0 &= quot;Timed out waiting for " + waiting_for_message

=C2=A0 File &qu= ot;/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages= /selenium/webdriver/support/wait.py", line 80, in until

=C2=A0 =C2=A0 r= aise TimeoutException(message, screen, stacktrace)

TimeoutExcept= ion: Message: Timed out waiting for field to contain 'test_backup_file&= #39;



(with screenshot attached)

Thanks.<= /div>

I have ran the feature tests with multiple server= s many times but didn't get a single failure.
I have asked Ak= shay to run on his machine, let see what he gets.


= =C2=A0

=
Thanks,
Khushboo




O= n Wed, Apr 25, 2018 at 9:40 PM, Joao De Almeida Pereira &= lt;jdealm= eidapereira@pivotal.io> wrote:
Hi Khushboo,

We reviewed the patch = and it is very nice to see some more coverage in this area. Good job :D

We passed the tests through our CI the feature tests = are not passing, but the linter fails:
./pgadmin/feature_tests/pg_utilities= _backup_test.py:37: [E501] line too long (91 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test.py:53: [E= 501] line too long (104 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test.py:59: [E= 501] line too long (85 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test.py:62: [E= 501] line too long (96 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test.py:63: [E= 501] line too long (91 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test.py:70: [E= 501] line too long (118 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:37: [E= 121] continuation line under-indented for hanging indent
./pgadmin/tools/backup/tests/test_backup_message.py:48: [E= 122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_backup_message.py:49: [E= 251] unexpected spaces around keyword / parameter equals
./pgadmin/tools/backup/tests/test_backup_message.py:49: [E= 251] unexpected spaces around keyword / parameter equals
./pgadmin/tools/backup/tests/test_backup_message.py:51: [E= 501] line too long (91 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:52: [E= 501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:53: [E= 501] line too long (108 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:81: [E= 501] line too long (113 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:82: [E= 501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:83: [E= 501] line too long (108 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:111: [= E501] line too long (100 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:113: [= E501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:114: [= E501] line too long (108 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message.py:147: [= E501] line too long (93 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.py:40: [E1= 21] continuation line under-indented for hanging indent
./pgadmin/tools/backup/tests/test_batch_process.py:51: [E1= 22] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_batch_process.py:135: [E= 501] line too long (80 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.py:137: [E= 501] line too long (83 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.py:138: [E= 122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_batch_process.py:139: [E= 122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_batch_process.py:140: [E= 122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_batch_process.py:191: [E= 501] line too long (81 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.py:203: [E= 501] line too long (80 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.py:204: [E= 128] continuation line under-indented for visual indent
./pgadmin/tools/backup/tests/test_batch_process.py:204: [E= 501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.py:205: [E= 128] continuation line under-indented for visual indent
./pgadmin/tools/backup/tests/test_batch_process.py:205: [E= 501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.py:216: [W= 391] blank line at end of file
./pgadmin/tools/backup/tests/test_create_backup_job.py:296= : [E501] line too long (97 > 79 characters)
./pgadmin/tools/backup/tests/test_create_backup_job.py:317= : [E303] too many blank lines (2)
./pgadmin/tools/backup/tests/test_create_backup_job.py:336= : [E501] line too long (84 > 79 characters)
./pgadmin/tools/backup/tests/test_create_backup_job.py:371= : [W391] blank line at end of file
2 E121 continuation line under-indented for hanging inden= t
5 E122 continuation line missing indentation or outdented=
2 E128 continuation line under-indented for visual indent=
2 E251 unexpected spaces around keyword / parameter equal= s
1 E303 too many blank lines (2)
24 E501 line too long (91 > 79 characters)
2 W391 blank line at end of file
38

For the fea= ture tests, we realized we had to update the configuration, and we did that= , but we get the following error attached. We spent some time trying to und= erstand the problem but we were not successful.

Codewise:
- We just found some One Letter Variables = in the code...
- Looks like there is a bug report in this area of= the code and we do not have coverage for it:=C2=A0https://redmine.postg= resql.org/issues/3232
=C2=A0 Looks like in some of the unit t= ests we only have happy path tests, maybe we should see if there are any sa= d paths that also need coverage.

The configuration= change, maybe need to be updated. When we install multiple versions of pos= tgres the binaries live in `/usr/lib/postgresql/{{db_version}}/bin`, w= hich makes us think that this configuration should live near the server con= figuration, maybe? Also to maintain coherency on the naming maybe we should= make it all lower case.
Just as an aside, you can add the gpdb c= onfiguration as well in you patch.

Thanks
Victoria & Joao

On Wed, Ap= r 25, 2018 at 5:20 AM Khushboo Vashi <khushboo.vashi@enterprisedb.com= > wrote:
Hi,
Please find the attached patch which covers test cases for= the backup module (RM #3206).

1. Unit test cases<= /div>
2. End to end regression test cases=C2=A0
3. Feature te= st cases

Thanks,
Khushboo




--
Dave Pa= ge
Blog: http:= //pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterpris= edb.com
The Enterprise PostgreSQL Company






--
=
Dave Page
Blog: = http://pgsnake.bl= ogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com<= br>The Enterprise PostgreSQL Company


--0000000000008b3f43056ddccd60--