diff schema/manage_users_tests.sql @ 195:5dc8e734487a

Introduce database schemas as privilege-based namespaces Some privileges changed (e.g. for responsibility_areas), but additional privileges were not left off intentionally before. Search path settings have been replaced by schema-qualifying names in statements to prevent object definitions from being dependend on search path settings.
author Tom Gottfried <tom@intevation.de>
date Fri, 20 Jul 2018 17:28:16 +0200
parents a9d9c2b1d08c
children b67208d82543
line wrap: on
line diff
--- a/schema/manage_users_tests.sql	Fri Jul 20 18:32:40 2018 +0200
+++ b/schema/manage_users_tests.sql	Fri Jul 20 17:28:16 2018 +0200
@@ -2,30 +2,36 @@
 --
 -- pgTAP test script for user management functions
 --
-SELECT plan(5); -- Give number of tests that have to be run
+SELECT plan(6); -- Give number of tests that have to be run
 
 SET search_path TO public, gemma, gemma_waterway, gemma_fairway;
 
---
--- Run tests as system_admin
---
+SET SESSION AUTHORIZATION waterway_admin;
+
+SELECT throws_ok($$
+    SELECT sys_admin.create_user(
+        'waterway_user', 'test0', 'secret', 'AT', NULL, 'test0')
+    $$,
+    42501, NULL,
+    'Less privileged user cannot call function in schema sys_admin');
+
 SET SESSION AUTHORIZATION sys_admin;
 
 SELECT lives_ok($$
-    SELECT create_user(
+    SELECT sys_admin.create_user(
         'waterway_user', 'test1', 'secret', 'AT', NULL, 'test1')
     $$,
     'New waterway user can be added');
 
 SELECT throws_ok($$
-    SELECT create_user(
+    SELECT sys_admin.create_user(
         'invalid', 'test2', 'secret', 'AT', NULL, 'test2')
     $$,
     42704, NULL,
     'Valid role name has to be provided');
 
 SELECT throws_ok($$
-    SELECT create_user(
+    SELECT sys_admin.create_user(
         'waterway_user', NULL, 'secret', 'AT', NULL, 'test3')
     $$,
     23502, NULL,
@@ -33,14 +39,14 @@
 -- Though other arguments are mandatory, too, there are no explicit tests
 
 SELECT throws_ok($$
-    SELECT create_user(
+    SELECT sys_admin.create_user(
         'waterway_user', 'waterway_user', 'secret', 'AT', NULL, 'test4')
     $$,
     23505, NULL,
     'No duplicate user name is allowed');
 
 SELECT throws_ok($$
-    SELECT create_user(
+    SELECT sys_admin.create_user(
         'waterway_user', 'test2', 'secret', 'AT', NULL, 'xxx')
     $$,
     23505, NULL,