From bac7d79ab341c610310e1b4114e6a56cea6aff25 Mon Sep 17 00:00:00 2001 From: Raul Marin Date: Tue, 5 Nov 2019 13:22:45 +0100 Subject: [PATCH] CDB_FederatedServer: Improve tests readability --- scripts-available/CDB_FederatedServer.sql | 3 +- test/CDB_FederatedServer.sql | 46 ++++++++++----------- test/CDB_FederatedServer_expect | 49 +++++++++++------------ 3 files changed, 49 insertions(+), 49 deletions(-) diff --git a/scripts-available/CDB_FederatedServer.sql b/scripts-available/CDB_FederatedServer.sql index 67ca036..3c822b7 100644 --- a/scripts-available/CDB_FederatedServer.sql +++ b/scripts-available/CDB_FederatedServer.sql @@ -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 $$ diff --git a/test/CDB_FederatedServer.sql b/test/CDB_FederatedServer.sql index 5371235..a818f8e 100644 --- a/test/CDB_FederatedServer.sql +++ b/test/CDB_FederatedServer.sql @@ -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", diff --git a/test/CDB_FederatedServer_expect b/test/CDB_FederatedServer_expect index 290c234..aecffa1 100644 --- a/test/CDB_FederatedServer_expect +++ b/test/CDB_FederatedServer_expect @@ -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|