CDB_FederatedServer: Improve tests readability

This commit is contained in:
Raul Marin
2019-11-05 13:22:45 +01:00
parent 98b2b02199
commit bac7d79ab3
3 changed files with 49 additions and 49 deletions

View File

@@ -273,12 +273,13 @@ DECLARE
server_internal text := @extschema@.__CDB_FS_Generate_Server_Name(input_name := server, check_existence := true);
role_name name := @extschema@.__CDB_FS_Generate_Server_Role_Name(server_internal);
BEGIN
SET client_min_messages = ERROR;
BEGIN
EXECUTE FORMAT ('DROP USER MAPPING FOR public SERVER %I', server_internal);
EXECUTE FORMAT ('DROP OWNED BY %I CASCADE', role_name);
EXECUTE FORMAT ('DROP ROLE %I', role_name);
EXCEPTION WHEN OTHERS THEN
RAISE EXCEPTION 'Unnecessary permissions to drop the server "%": %', server, SQLERRM;
RAISE EXCEPTION 'Not enough permissions to drop the server "%"', server;
END;
END
$$

View File

@@ -6,13 +6,13 @@ SET SESSION AUTHORIZATION postgres;
CREATE EXTENSION postgres_fdw;
\set QUIET off
\echo "List empty servers shows nothing"
\echo '## List empty servers shows nothing'
SELECT '1.1', cartodb.CDB_Federated_Server_List_Servers();
\echo "List non-existent server shows nothing"
\echo '## List non-existent server shows nothing'
SELECT '1.2', cartodb.CDB_Federated_Server_List_Servers(server := 'doesNotExist');
\echo "Create and list a server works"
\echo '## Create and list a server works'
SELECT '1.3', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote'::text, config := '{
"server": {
"host": "localhost",
@@ -25,7 +25,7 @@ SELECT '1.3', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote'::tex
}'::jsonb);
SELECT '1.4', cartodb.CDB_Federated_Server_List_Servers();
\echo "Create and list a second server works"
\echo '## Create and list a second server works'
SELECT '2.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote2'::text, config := '{
"server": {
"dbname": "fdw_target",
@@ -43,11 +43,11 @@ SELECT '2.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote2'::te
}'::jsonb);
SELECT '2.2', cartodb.CDB_Federated_Server_List_Servers();
\echo "List server by name works"
\echo '## List server by name works'
SELECT '2.3', cartodb.CDB_Federated_Server_List_Servers(server := 'myRemote');
\echo "Re-register a second server works"
\echo '## Re-register a second server works'
SELECT '3.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote2'::text, config := '{
"server": {
"dbname": "fdw_target",
@@ -65,24 +65,24 @@ SELECT '3.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote2'::te
}'::jsonb);
SELECT '3.2', cartodb.CDB_Federated_Server_List_Servers();
\echo "Unregister server 1 works"
\echo '## Unregister server 1 works'
SELECT '4.1', cartodb.CDB_Federated_Server_Unregister(server := 'myRemote'::text);
SELECT '4.2', cartodb.CDB_Federated_Server_List_Servers();
\echo "Unregistering a server that doesn't exist fails"
\echo '## Unregistering a server that does not exist fails'
SELECT '5.1', cartodb.CDB_Federated_Server_Unregister(server := 'doesNotExist'::text);
\echo "Unregister the second server works"
\echo '## Unregister the second server works'
SELECT '6.1', cartodb.CDB_Federated_Server_Unregister(server := 'myRemote2'::text);
SELECT '6.2', cartodb.CDB_Federated_Server_List_Servers();
\echo "Create a server with NULL name fails"
\echo '## Create a server with NULL name fails'
SELECT '7.0', cartodb.CDB_Federated_Server_Register_PG(server := NULL::text, config := '{ "server": {}, "credentials" : {}}');
\echo "Create a server with NULL config fails"
\echo '## Create a server with NULL config fails'
SELECT '7.01', cartodb.CDB_Federated_Server_Register_PG(server := 'empty'::text, config := NULL::jsonb);
\echo "Create a server with empty config fails"
\echo '## Create a server with empty config fails'
SELECT '7.1', cartodb.CDB_Federated_Server_Register_PG(server := 'empty'::text, config := '{}');
\echo "Create a server without credentials fails"
\echo '## Create a server without credentials fails'
SELECT '7.2', cartodb.CDB_Federated_Server_Register_PG(server := 'empty'::text, config := '{
"server": {
"dbname": "fdw_target",
@@ -94,7 +94,7 @@ SELECT '7.2', cartodb.CDB_Federated_Server_Register_PG(server := 'empty'::text,
"fetch_size": "1000"
}
}'::jsonb);
\echo "Create a server with empty credentials works"
\echo '## Create a server with empty credentials works'
SELECT '7.3', cartodb.CDB_Federated_Server_Register_PG(server := 'empty'::text, config := '{
"server": {
"dbname": "fdw_target",
@@ -109,7 +109,7 @@ SELECT '7.3', cartodb.CDB_Federated_Server_Register_PG(server := 'empty'::text,
}'::jsonb);
SELECT '7.4', cartodb.CDB_Federated_Server_List_Servers();
SELECT '7.5', cartodb.CDB_Federated_Server_Unregister(server := 'empty'::text);
\echo "Create a server without options fails"
\echo '## Create a server without options fails'
SELECT '7.6', cartodb.CDB_Federated_Server_Register_PG(server := 'empty'::text, config := '{
"credentials": {
"username": "other_remote_user",
@@ -117,7 +117,7 @@ SELECT '7.6', cartodb.CDB_Federated_Server_Register_PG(server := 'empty'::text,
}
}'::jsonb);
\echo "Create a server with special characters works"
\echo '## Create a server with special characters works'
SELECT '8.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote" or''not'::text, config := '{
"server": {
"dbname": "fdw target",
@@ -161,10 +161,10 @@ SELECT '9.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote3'::te
\c contrib_regression cdb_fs_tester
\echo "All users are able to list servers"
\echo '## All users are able to list servers'
SELECT '9.2', cartodb.CDB_Federated_Server_List_Servers();
\echo "Only superadmins can create servers"
\echo '## Only superadmins can create servers'
SELECT '9.3', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote4'::text, config := '{
"server": {
"host": "localhost",
@@ -179,23 +179,23 @@ SELECT '9.3', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote4'::te
\c contrib_regression postgres
\echo "Granting access to a user works"
\echo '## Granting access to a user works'
SELECT '9.5', cartodb.CDB_Federated_Server_Grant_Access(server := 'myRemote3', usernames := ARRAY['cdb_fs_tester']);
SELECT '9.6', cartodb.CDB_Federated_Server_Grant_Access(server := 'does not exist', usernames := ARRAY['cdb_fs_tester']);
SELECT '9.7', cartodb.CDB_Federated_Server_Grant_Access(server := 'myRemote3', usernames := ARRAY['does not exist']);
\echo "Granting access again raises a notice"
\echo '## Granting access again raises a notice'
SELECT '9.8', cartodb.CDB_Federated_Server_Grant_Access(server := 'myRemote3', usernames := ARRAY['cdb_fs_tester']);
\echo "Revoking access to a user works"
\echo '## Revoking access to a user works'
SELECT '9.9', cartodb.CDB_Federated_Server_Revoke_Access(server := 'myRemote3', usernames := ARRAY['cdb_fs_tester']);
SELECT '9.10', cartodb.CDB_Federated_Server_Grant_Access(server := 'myRemote3', usernames := ARRAY['cdb_fs_tester']);
\echo "Unregistering a server with active grants works"
\echo '## Unregistering a server with active grants works'
SELECT '9.11', cartodb.CDB_Federated_Server_Unregister(server := 'myRemote3'::text);
\echo "A user with granted access can't drop a server"
\echo '## A user with granted access can not drop a server'
SELECT '10.1', cartodb.CDB_Federated_Server_Register_PG(server := 'myRemote4'::text, config := '{
"server": {
"host": "localhost",

View File

@@ -1,68 +1,67 @@
"List empty servers shows nothing"
"List non-existent server shows nothing"
"Create and list a server works"
## List empty servers shows nothing
## List non-existent server shows nothing
## Create and list a server works
1.3|
1.4|(myRemote,postgres_fdw,localhost,5432,,read-only,fdw_user)
"Create and list a second server works"
## Create and list a second server works
2.1|
2.2|(myRemote,postgres_fdw,localhost,5432,,read-only,fdw_user)
2.2|(myRemote2,postgres_fdw,localhost,5432,fdw_target,read-only,fdw_user)
"List server by name works"
## List server by name works
2.3|(myRemote,postgres_fdw,localhost,5432,,read-only,fdw_user)
"Re-register a second server works"
## Re-register a second server works
3.1|
3.2|(myRemote,postgres_fdw,localhost,5432,,read-only,fdw_user)
3.2|(myRemote2,postgres_fdw,localhost,5432,fdw_target,read-only,other_remote_user)
"Unregister server 1 works"
## Unregister server 1 works
4.1|
4.2|(myRemote2,postgres_fdw,localhost,5432,fdw_target,read-only,other_remote_user)
"Unregistering a server that doesn't exist fails"
## Unregistering a server that does not exist fails
ERROR: Server "doesNotExist" does not exist
"Unregister the second server works"
## Unregister the second server works
6.1|
"Create a server with NULL name fails"
## Create a server with NULL name fails
ERROR: Server name cannot be NULL
"Create a server with NULL config fails"
## Create a server with NULL config fails
7.01|
"Create a server with empty config fails"
## Create a server with empty config fails
ERROR: Server information is mandatory
"Create a server without credentials fails"
## Create a server without credentials fails
ERROR: Credentials are mandatory
"Create a server with empty credentials works"
## Create a server with empty credentials works
7.3|
7.4|(empty,postgres_fdw,localhost,5432,fdw_target,read-only,)
7.5|
"Create a server without options fails"
## Create a server without options fails
ERROR: Server information is mandatory
"Create a server with special characters works"
## Create a server with special characters works
8.1|
8.2|("myRemote"" or'not",postgres_fdw,localhost,5432,"fdw target",read-only,"fdw user")
8.3|
9.1|
You are now connected to database "contrib_regression" as user "cdb_fs_tester".
"All users are able to list servers"
## All users are able to list servers
9.2|(myRemote3,postgres_fdw,localhost,5432,,read-only,)
"Only superadmins can create servers"
## Only superadmins can create servers
ERROR: Could not create server myRemote4: permission denied for foreign-data wrapper postgres_fdw
You are now connected to database "contrib_regression" as user "postgres".
"Granting access to a user works"
## Granting access to a user works
9.5|
ERROR: Server "does not exist" does not exist
ERROR: User role "does not exist" does not exists
"Granting access again raises a notice"
## Granting access again raises a notice
NOTICE: role "cdb_fs_tester" is already a member of role "cdb_fs_role_95b63382aabca4433e7bd9cba6c30368"
9.8|
"Revoking access to a user works"
## Revoking access to a user works
9.9|
9.10|
"Unregistering a server with active grants works"
## Unregistering a server with active grants works
9.11|
"A user with granted access can't drop a server"
## A user with granted access can not drop a server
10.1|
10.2|
You are now connected to database "contrib_regression" as user "cdb_fs_tester".
WARNING: no privileges could be revoked for "postgres_fdw"
ERROR: Unnecessary permissions to drop the server "myRemote4": permission denied to drop role
ERROR: Not enough permissions to drop the server "myRemote4"
You are now connected to database "contrib_regression" as user "postgres".
10.4|