Re: pgAdmin IV : Unittest modular patch - Mailing list pgadmin-hackers
From | Dave Page |
---|---|
Subject | Re: pgAdmin IV : Unittest modular patch |
Date | |
Msg-id | CA+OCxowBEaow-6X1NzcA_i1qzKoiXJprh33s1wciriMup3_omA@mail.gmail.com Whole thread Raw |
In response to | Re: pgAdmin IV : Unittest modular patch (Navnath Gadakh <navnath.gadakh@enterprisedb.com>) |
Responses |
Re: pgAdmin IV : Unittest modular patch
|
List | pgadmin-hackers |
On Wed, Aug 3, 2016 at 2:01 PM, Navnath Gadakh <navnath.gadakh@enterprisedb.com> wrote: > Hi Dave, > Thanks for clarification. > > On Wed, Aug 3, 2016 at 2:45 PM, Dave Page <dave.page@enterprisedb.com> > wrote: >> >> Hi Navnath >> >> On Tue, Aug 2, 2016 at 3:58 PM, Navnath Gadakh >> <navnath.gadakh@enterprisedb.com> wrote: >> > Hi Dave, >> > Please find the attached patch. >> > This patch includes: >> > 1. API test cases for Roles & Tablespaces node(Completed nodes: server >> > groups, servers, databases) >> > You can run test-suite using following command >> > for roles node >> > python regression/runtests.py --pkg >> > browser.server_groups.servers.roles >> > for tablespaces node >> > python regression/runtests.py --pkg >> > browser.server_groups.servers.tablespaces >> > for all nodes >> > python regression/runtests.py >> > You can also test with multiple servers. >> > 2. Delete database code in some of the missed test files. >> > 3. Added advanced configurations in test_advanced_config.json.in for >> > roles & >> > tablespaces. So, accordingly you need change the file >> > test_advanced_config.json >> > 4. Added one test user credentials in test_config.json.in to test the >> > ‘valid >> > password’ test case which is present in >> > browser/tests/test_change_password.py >> > Why test user credentials in test_config.json.in? >> > Currently, I am getting ‘UnicodeDecodeError’ when I run >> > test-suite(runtests.py) with existing code. I already explained the >> > detail >> > about this error in RM(#1521). I am creating test user to test the >> > ‘valid >> > password’ test case. >> >> The tablespace test is one that I think is going to cause us problems >> - we really can't have a hard-coded path in the config; > > Understood. >> >> >> - It might need to be different for each server being tested >> Current patch supports multiple servers if you add tablespace >> configurations for multiple servers. In the current patch, it's only for one >> server. > > For multiple servers you need to add multiple tablespace > configuration: > "test_tablespc_credentials":[{ > "test_tblspace_name": "test_tablespace", > "test_spc_location": "/Library/PostgreSQL/9.6/data", > "test_spc_opts": [], > "test_spc_user": "XXXXX" > }, > "test_tblspace_name": "test_tablespace1", > "test_spc_seclable": [], > "test_spc_location": "/Library/PostgrePlus/9.4AS/data", > "test_spc_opts": [], > "test_spc_user": "YYYYY" > }] > Anyhow, we are not going to use a hard coded path. Oh - does the per-server config override the main config? That's useful. So anything that's in test_advanced_config.py can be overridden on a per-server basis in test_config.py? >> - It is very likely to be different for each user >> >> I think what we need to do is: >> >> - Skip the tests if the server is not connected via a Unix domain >> socket (hostname starts with /), 127.0.0.1 or ::1. > > Understood. Please output a notice saying the test was skipped, and note it in the summary as well (as we're planning to do with failed tests). >> >> - Add per-server configuration options for the tablespace path and >> service account under which the database server runs. These values >> should default to /tmp and postgres for a PostgreSQL server, and edb >> for PPAS. > > Ok. For server connected via Unix domain socket. As per my understanding > modified configuration should be, > "tablespc_credentials":[{ > "tblspace_name": "tablespace1", > "testspc_seclable": [], > "spc_acl": [ > { > "grantee":"postgres", > "grantor":"postgres", > "privileges":[ > { > "privilege_type":"C", > "privilege":true, > "with_grant":false > } > ] > } > ], > "spc_location": "/tmp", > "spc_opts": [], > "spc_user": "postgres", > "service_account": "test1_user" > },{ > "tblspace_name": "tablespace2", > "spc_seclable": [], > "spc_acl": [ > { > "grantee":"enterprisedb", > "grantor":"enterprisedb", > "privileges":[ > { > "privilege_type":"C", > "privilege":true, > "with_grant":false > } > ] > } > ], > "spc_location": "/tmp", > "spc_opts": [], > "spc_user": "enterprisedb", > "service_account": "test2_user" > }] > Please correct me if I am wrong. Something like that yes - though service_account seems pointless given your comment below... >> - Otherwise; assume the server is on the local machine, and: >> - Create /$tblspace_path/<random_string>/ >> - chown $service_account /$tblspace_path/<random_string>/ >> - Run the tests > > We can't set the owner for a tablespace path directory using normal > user, the user should be 'root' > Say, I am logged in my machine as a 'abc' user & I have installed > PostgreSQL9.5 with 'postgres' user. > It won't run chown postgres > /$tablespace_path_for_PostgreSQL9.5/<random_string> Aww crap. Yeah :-(. OK in that case let's have the user specify (and create) the path themselves for each server. If they don't specify a path, then skip the test. In fact - you might as well only skip the test in that case, and forget about the address check above. -- Dave Page VP, Chief Architect, Tools & Installers EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company Blog: http://pgsnake.blogspot.com Twitter: @pgsnake
pgadmin-hackers by date: