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 1fOrdq-0006Qo-Iz for pgadmin-hackers@arkaria.postgresql.org; Fri, 01 Jun 2018 21:31:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fOrdo-0005xg-Qv for pgadmin-hackers@arkaria.postgresql.org; Fri, 01 Jun 2018 21:31:20 +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 1fOrdo-0005xW-02 for pgadmin-hackers@lists.postgresql.org; Fri, 01 Jun 2018 21:31:20 +0000 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fOrdj-0007YO-AG for pgadmin-hackers@postgresql.org; Fri, 01 Jun 2018 21:31:18 +0000 Received: by mail-wr0-x244.google.com with SMTP id w10-v6so37544086wrk.9 for ; Fri, 01 Jun 2018 14:31:14 -0700 (PDT) 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=XFL8ekb3/r4vkq/JFTV3juXzZS1WulLLv5/Zdg8HEZ8=; b=ZlXdKiUq6tf+Xj3BaaB+k3nkE4wNx4O2p3TNTgqsP7Ee6ajRNH221e6yH0ZUAKltGL sLNlFbp4sE4+X65rZ/hTKQrc29A0ubqx8QZrjRaHbVcURS7dwjKb7m6BGxmakh97SMyL YYxtTY5eiKCnJHvY/KiZCFkOZtbjim2gG1nWd6dUWpZDZThD3LpJf79/7H4BMKw7Om3/ 4RyrBDxHxgIir6J+akEYiiR6ChHe9Nf096sPoTQDr4b8+fQVroKukC2fcJTZ3x/QG5ob HM4PT4/eGp2ieQLyr5BFDu5FxRWSzXbl9UyX7WbwSGhifykMVRmUDDSIUg0K+aw+c8/j lxCQ== 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=XFL8ekb3/r4vkq/JFTV3juXzZS1WulLLv5/Zdg8HEZ8=; b=kyqRxX1V+CdK+viM5iqhM6WZ3f7vVWRpVbgljyjpvDRJ1Pwj4H70H+0A0RtmawJqgI z+52JZ5zy6TsIZtxHANhG8XF/2GUzVc1WFg5UaEcvCMmF2iwUxPzkCEYlZp03EGrwa/r TARJE/4sEY76qgINU6fAhnLr3V7Uf9xWHRSeiGLEY3crRYcyIRpfBWXef/x5VcQOVeNE hCCUl/faJ8VMmpxrqObB1s7o2gll7+pD0+fG6/B1X7kPLYylopqXbqfCL5uH8GVcYedc IAuq8PPapqp4EayQmHUV1XD2SGoG3zh3/gghq3/upDdTRppBx2tpO9tpMD+sACM+EIvj Mhbg== X-Gm-Message-State: ALKqPwfWbp4QnBXD5+12BE+Njkx03Utvq/BMH3kpMSEGT28fIdSVaMN1 hmCBu/gbYztvhS5Xbay2KVsNSjCjEVQ6z9qEjgzlIQ== X-Google-Smtp-Source: ADUXVKIPgZc7vKMYLByZUjIRGgTL5V1GkXKftax0w3Hyui+T51pGPt7+PD7Qmfg6CvlhUonyA+mS81SvxTzySwFWUdY= X-Received: by 2002:adf:9950:: with SMTP id x74-v6mr9247478wrb.135.1527888672972; Fri, 01 Jun 2018 14:31:12 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a1c:55c2:0:0:0:0:0 with HTTP; Fri, 1 Jun 2018 14:31:11 -0700 (PDT) In-Reply-To: References: From: Dave Page Date: Fri, 1 Jun 2018 17:31:11 -0400 Message-ID: Subject: Re: [pgadmin4][Patch]: Test cases for the backup module To: Khushboo Vashi Cc: Victoria Henry , pgadmin-hackers Content-Type: multipart/alternative; boundary="0000000000009bf83f056d9b4dd8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000009bf83f056d9b4dd8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi This looks good, except that it's leaving the test_restore_database behind. Can we clean that up please? 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.host >> port =3D manager.local_bind_port if manager.use_ssh_tunnel else s.port >> >> 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_unit_= 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/mock= .py", line 1179, in patched >> return func(*args, **keywargs) >> File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/tools/restore/test= s/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,98= 8: ERROR pgadmin: illegal environment variable name >> Traceback (most recent call last): >> File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/tools/restore/__in= it__.py", line 352, in create_restore_job >> manager.export_password_env(p.id) >> File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/utils/driver/psyco= pg2/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", line = 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_util >>>>> ities_maintenance_test.PGUtilitiesMaintenanceFeatureTest) >>>>> >>>>> Test for PG maintenance: database >>>>> >>>>> ---------------------------------------------------------------------= - >>>>> >>>>> Traceback (most recent call last): >>>>> >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilit= ies_maintenance_test.py", >>>>> line 56, in runTest >>>>> >>>>> self._open_maintenance_dialogue() >>>>> >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/pg_utilit= ies_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-packa >>>>> ges/selenium/webdriver/remote/webelement.py", line 80, in click >>>>> >>>>> self._execute(Command.CLICK_ELEMENT) >>>>> >>>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>> ges/selenium/webdriver/remote/webelement.py", line 628, in _execute >>>>> >>>>> return self._parent.execute(command, params) >>>>> >>>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>> ges/selenium/webdriver/remote/webdriver.py", line 312, in execute >>>>> >>>>> self.error_handler.check_response(response) >>>>> >>>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>> ges/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, 604)= . Other >>>>> element would receive the click:
>>>> wcPanelBackground wcScrollableX wcScrollableY" style=3D"left: 0px; ri= ght: >>>>> 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_util >>>>> ities_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_utilit= ies_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/pgadmi= n_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/pgadmi= n_page.py", >>>>> line 251, in wait_for_input_field_content >>>>> >>>>> "field to contain '" + str(content) + "'", input_field_has_conten= t >>>>> >>>>> File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmi= n_page.py", >>>>> line 337, in _wait_for >>>>> >>>>> "Timed out waiting for " + waiting_for_message >>>>> >>>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>> ges/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] line= too long (91 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:53: [E501] line= too long (104 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:59: [E501] line= too long (85 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:62: [E501] line= too long (96 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:63: [E501] line= too long (91 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/feature_tests/pg_utilities_backup_test.py:70: [E501] line= too long (118 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:37: [E121] cont= inuation line under-indented for hanging indent >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:48: [E122] cont= inuation line missing indentation or outdented >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:49: [E251] unex= pected spaces around keyword / parameter equals >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:49: [E251] unex= pected spaces around keyword / parameter equals >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:51: [E501] line= too long (91 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:52: [E501] line= too long (94 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:53: [E501] line= too long (108 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:81: [E501] line= too long (113 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:82: [E501] line= too long (94 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:83: [E501] line= too long (108 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:111: [E501] lin= e too long (100 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:113: [E501] lin= e too long (94 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:114: [E501] lin= e too long (108 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_backup_message.py:147: [E501] lin= e too long (93 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:40: [E121] conti= nuation line under-indented for hanging indent >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:51: [E122] conti= nuation line missing indentation or outdented >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:135: [E501] line= too long (80 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:137: [E501] line= too long (83 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:138: [E122] cont= inuation line missing indentation or outdented >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:139: [E122] cont= inuation line missing indentation or outdented >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:140: [E122] cont= inuation line missing indentation or outdented >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:191: [E501] line= too long (81 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:203: [E501] line= too long (80 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:204: [E128] cont= inuation line under-indented for visual indent >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:204: [E501] line= too long (94 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:205: [E128] cont= inuation line under-indented for visual indent >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:205: [E501] line= too long (94 > 79 characters) >>>>>>> >>>>>>> ./pgadmin/tools/backup/tests/test_batch_process.py:216: [W391] blan= k 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 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 atta= ched. We >>>>>>> spent some time trying to understand the problem but we were not su= ccessful. >>>>>>> >>>>>>> >>>>>>> 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 nee= d >>>>>>> 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 configuration, maybe= ? Also >>>>>>> to maintain coherency on the naming maybe we should make it all low= er 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 >>>>> >>>> >>>> >>> > --=20 Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --0000000000009bf83f056d9b4dd8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

This looks good, except that it'= s leaving the test_restore_database behind. Can we clean that up please?

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=C2=A0 - = Ensure backup/restore/maintenance work via SSH tunnels. Fixes #3355

I have fixed the issues and attached the updated patch.

Thanks,
Khushboo=C2=A0

On Thu, May 31, 2018 at 10:00 PM, Victoria Henry <vhenry@= pivotal.io> wrote:
Hi there,

We've been noticing some issues w= ith 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_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/unitte=
st/mock.py", line 1179, in patched
    return func(*args, **keywargs)
  File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/tools/resto=
re/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/resto=
re/__init__.py", line 352, in create_restore_job
    manager.export_password_env(p=
.id)
  File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/utils/drive=
r/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/os.py&=
quot;, 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.vash= i@enterprisedb.com> wrote:
Hi,

Please find the attached update= d patch with the fixes.
The test cases were only failing on MAC n= ot on Linux.

Thanks,
Khushboo

On Wed, May 30, = 2018 at 10:13 AM, Khushboo Vashi <khushboo.vashi@enterprised= b.com> wrote:


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

On Mon, May 28, = 2018 at 8:09 AM, Khushboo Vashi <khushboo.vashi@enterprisedb= .com> wrote:
Hi,

please find the attached update= d 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 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.=C2=A0
2) I've hit screensize related issues:
<= div>

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=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):

=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/f= eature_tests/pg_utilities_maintenance_test.py", line 56, in runTe= st

=C2=A0 =C2=A0 self._open_maintenance_dialogue()

=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/f= eature_tests/pg_utilities_maintenance_test.py", line 75, in _open= _maintenance_dialogue

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

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

=C2=A0 =C2=A0 self._execute(Command.CLICK_ELEMENT)=

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

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

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

=C2=A0 =C2=A0 self.error_handler.check_response(response)=

=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/= python2.7/site-packages/selenium/webdriver/remote/errorhandler.py= ", line 242, in check_response

=C2=A0 =C2=A0 raise exception_class(message, screen, stacktrac= e)

WebDriverException: Message: unknown error: Element <span class= =3D"aciTreeItem">...</span> is not clickable at point (2= 23, 604). Other element would receive the click: <div class=3D"wcFr= ameCenter wcPanelBackground 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 (183d19265345f= 54ce39cbb94cf81ba5f15905011),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_resto= re_test.PGUtilitiesBackupFeatureTest)

Test for PG utilities - Backup and Restore

----------------------------------------------------------------------

Traceback (most recent call last):

=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/f= eature_tests/pg_utilities_backup_restore_test.py", line 93, in ru= nTest

=C2=A0 =C2=A0 self.page.fill_input_by_field_name("fi= le", "test_backup_file")

=C2=A0 File "/Users/dpage/git/pgadmin4/web/regressio= n/feature_utils/pgadmin_page.py", line 211, in fill_input_by_fiel= d_name

=C2=A0 =C2=A0 self.wait_for_input_field_content(field_nam= e, field_content)

=C2=A0 File "/Users/dpage/git/pgadmin4/web/regressio= n/feature_utils/pgadmin_page.py", line 251, in wait_for_input_fie= ld_content

=C2=A0 =C2=A0 "field to contain '" + str(content= ) + "'", input_field_has_content

=C2=A0 File "/Users/dpage/git/pgadmin4/web/regressio= n/feature_utils/pgadmin_page.py", line 337, in _wait_for

=C2=A0 =C2=A0 "Timed out waiting for " + waiting_for= _message

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

=C2=A0 =C2=A0 raise TimeoutException(message, screen, stacktra= ce)

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



(with screenshot attached)

Thanks.<= /div>

=
I have ran the feature tests with multi= ple servers many times but didn't get a single failure.
I hav= e asked Akshay to run on his machine, let see what he gets.
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
<= div class=3D"gmail_quote">

=C2=A0

Thanks,
Khushboo




On Wed, Apr 25, 2018 at 9:4= 0 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io= > wrote:
Hi Kh= ushboo,

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

We p= assed the tests through our CI the feature tests are not passing, but the l= inter fails:
= ./pgadmin/feature_tests/pg_utilities_backu= p_test.py:37: [E501] line too long (91 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test= .py:53: [E501] line too long (104 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test= .py:59: [E501] line too long (85 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test= .py:62: [E501] line too long (96 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test= .py:63: [E501] line too long (91 > 79 characters)
./pgadmin/feature_tests/pg_utilities_backup_test= .py:70: [E501] line too long (118 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message= .py:37: [E121] continuation line under-indented for hanging indent
./pgadmin/tools/backup/tests/test_backup_message= .py:48: [E122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_backup_message= .py:49: [E251] unexpected spaces around keyword / parameter equals
./pgadmin/tools/backup/tests/test_backup_message= .py:49: [E251] unexpected spaces around keyword / parameter equals
./pgadmin/tools/backup/tests/test_backup_message= .py:51: [E501] line too long (91 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message= .py:52: [E501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message= .py:53: [E501] line too long (108 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message= .py:81: [E501] line too long (113 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message= .py:82: [E501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_backup_message= .py:83: [E501] 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: [E121] continuation line under-indented for hanging indent
./pgadmin/tools/backup/tests/test_batch_process.= py:51: [E122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_batch_process.= py:135: [E501] line too long (80 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.= py:137: [E501] line too long (83 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.= py:138: [E122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_batch_process.= py:139: [E122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_batch_process.= py:140: [E122] continuation line missing indentation or outdented
./pgadmin/tools/backup/tests/test_batch_process.= py:191: [E501] line too long (81 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.= py:203: [E501] line too long (80 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.= py:204: [E128] continuation line under-indented for visual indent
./pgadmin/tools/backup/tests/test_batch_process.= py:204: [E501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.= py:205: [E128] continuation line under-indented for visual indent
./pgadmin/tools/backup/tests/test_batch_process.= py:205: [E501] line too long (94 > 79 characters)
./pgadmin/tools/backup/tests/test_batch_process.= py:216: [W391] 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 han= ging indent
5 E122 continuation line missing indentation or= outdented
2 E128 continuation line under-indented for vis= ual indent
2 E251 unexpected spaces around keyword / param= eter 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

F= or the feature tests, we realized we had to update the configuration, and w= e did that, but we get the following error attached. We spent some time try= ing 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 th= is area of the code and we do not have coverage for it:=C2=A0https://redmine.= postgresql.org/issues/3232
=C2=A0 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 con= figuration change, maybe need to be updated. When we install multiple versi= ons of postgres the binaries live in `/usr/lib/postgresql/{{db_version= }}/bin`, which makes us think that this configuration should live near the = server configuration, 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.

Thank= s
Victoria & Joao

On Wed, Apr 25, 2018 at 5:20 AM Khushboo Vashi <khushboo.vashi@enter= prisedb.com> wrote:
Hi,

Please find the attached patch which c= overs test cases for the backup module (RM #3206).

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

Thanks,
Khu= shboo

<= font color=3D"#888888">


--
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.enterprised= b.com
The Enterprise PostgreSQL Company
--0000000000009bf83f056d9b4dd8--