# HG changeset patch # User Tom Gottfried # Date 1532518486 -7200 # Node ID 57dfab80973c468025a05bedc0f6295d0641e4fb # Parent e9382dccb3319d8678b3f4e9a4246957ec488513 By convention, prefix all test users with 'test' This allows to DROP them without having to fixup run_tests.sh always after adding a new test user. Further fixup of rev. cfde876fbaf9: Remove obsolete comment. diff -r e9382dccb331 -r 57dfab80973c schema/auth_tests.sql --- a/schema/auth_tests.sql Wed Jul 25 12:37:03 2018 +0200 +++ b/schema/auth_tests.sql Wed Jul 25 13:34:46 2018 +0200 @@ -5,7 +5,7 @@ -- -- Run tests as unprivileged user -- -SET SESSION AUTHORIZATION user_at; +SET SESSION AUTHORIZATION test_user_at; SELECT throws_ok('CREATE TABLE test()', 42501, NULL, 'No objects can be created'); @@ -31,7 +31,7 @@ -- -- Run tests as waterway administrator -- -SET SESSION AUTHORIZATION admin_at; +SET SESSION AUTHORIZATION test_admin_at; PREPARE bn_insert (varchar, geometry(POLYGON, 4326)) AS INSERT INTO waterway.bottlenecks ( @@ -66,7 +66,7 @@ SELECT lives_ok('INSERT INTO users.templates (template_name, template_data) VALUES (''New AT'', ''\x''); INSERT INTO users.user_templates - VALUES (''user_at'', ''New AT'')', + VALUES (''test_user_at'', ''New AT'')', 'Waterway admin can add templates for users in his country'); SELECT throws_ok('INSERT INTO users.user_templates diff -r e9382dccb331 -r 57dfab80973c schema/manage_users_tests.sql --- a/schema/manage_users_tests.sql Wed Jul 25 12:37:03 2018 +0200 +++ b/schema/manage_users_tests.sql Wed Jul 25 13:34:46 2018 +0200 @@ -4,7 +4,7 @@ SET search_path TO public, gemma, gemma_waterway, gemma_fairway; -SET SESSION AUTHORIZATION admin_at; +SET SESSION AUTHORIZATION test_admin_at; SELECT throws_ok($$ SELECT sys_admin.create_user( @@ -13,7 +13,7 @@ 42501, NULL, 'Less privileged user cannot call function in schema sys_admin'); -SET SESSION AUTHORIZATION sys_admin1; +SET SESSION AUTHORIZATION test_sys_admin1; SELECT lives_ok($$ SELECT sys_admin.create_user( @@ -45,7 +45,7 @@ SELECT throws_ok($$ SELECT sys_admin.create_user( - 'waterway_user', 'user_at', 'secret', 'AT', NULL, 'test4') + 'waterway_user', 'test_user_at', 'secret', 'AT', NULL, 'test4') $$, 23505, NULL, 'No duplicate user name is allowed'); diff -r e9382dccb331 -r 57dfab80973c schema/run_tests.sh --- a/schema/run_tests.sh Wed Jul 25 12:37:03 2018 +0200 +++ b/schema/run_tests.sh Wed Jul 25 13:34:46 2018 +0200 @@ -9,10 +9,15 @@ -f auth.sql \ -f manage_users.sql -# Add test data, run tests and ROLLBACK to prevent test roles to stay -# in cluster, which would prevent tests from being repeatable +# Collect test roles to be dropped +# Concatenate with dummy role to prevent syntax error if there is no test role +TEST_ROLES=$(psql -qtc \ + "SELECT concat_ws(',', 'test', string_agg(rolname, ',')) FROM pg_roles + WHERE rolname LIKE 'test%'") + +# Drop test roles, add test data and run tests psql -qXv ON_ERROR_STOP= -v -d gemma_test \ - -c 'DROP ROLE IF EXISTS user_at, user_ro, admin_at, sys_admin1, test1' \ + -c "DROP ROLE IF EXISTS $TEST_ROLES" \ -f tap_tests_data.sql \ -c 'SELECT plan(23)' \ -f auth_tests.sql \ diff -r e9382dccb331 -r 57dfab80973c schema/tap_tests_data.sql --- a/schema/tap_tests_data.sql Wed Jul 25 12:37:03 2018 +0200 +++ b/schema/tap_tests_data.sql Wed Jul 25 13:34:46 2018 +0200 @@ -9,13 +9,13 @@ ('RO', ST_geomfromtext('MULTIPOLYGON(((1 0, 1 1, 2 1, 2 0, 1 0)))', 4326)); SELECT sys_admin.create_user( - 'waterway_user', 'user_at', 'user_at', 'AT', NULL, 'xxx'); + 'waterway_user', 'test_user_at', 'user_at', 'AT', NULL, 'xxx'); SELECT sys_admin.create_user( - 'waterway_user', 'user_ro', 'user_ro', 'RO', NULL, 'xxy'); + 'waterway_user', 'test_user_ro', 'user_ro', 'RO', NULL, 'xxy'); SELECT sys_admin.create_user( - 'waterway_admin', 'admin_at', 'admin_at', 'AT', NULL, 'yyy'); + 'waterway_admin', 'test_admin_at', 'admin_at', 'AT', NULL, 'yyy'); SELECT sys_admin.create_user( - 'sys_admin', 'sys_admin1', 'sys_admin1', 'AT', NULL, 'zzz'); + 'sys_admin', 'test_sys_admin1', 'sys_admin1', 'AT', NULL, 'zzz'); INSERT INTO limiting_factors VALUES ('depth'), ('width'); @@ -54,4 +54,4 @@ INSERT INTO users.templates (template_name, template_data) VALUES ('AT', '\x'), ('RO', '\x'); INSERT INTO users.user_templates - VALUES ('user_at', 'AT'), ('user_ro', 'RO'); + VALUES ('test_user_at', 'AT'), ('test_user_ro', 'RO');