Changeset: 76fddd8c305e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=76fddd8c305e
Added Files:
        sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.py
Removed Files:
        sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql
        sql/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql
        sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.bat
        sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh
        sql/test/BugTracker/Tests/authorization.SF-1430616.stable.err
        sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out
Branch: mtest
Log Message:

Rewritten the test


diffs (truncated from 327 to 300 lines):

diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql 
b/sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql
deleted file mode 100644
--- a/sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-CREATE USER "voc" WITH PASSWORD 'voc' NAME 'VOC Explorer' SCHEMA "sys";
-SELECT users.name, users.fullname, schemas.name
-       FROM users, schemas
-       WHERE users.default_schema = schemas.id;
-CREATE SCHEMA "voc" AUTHORIZATION "voc";
-ALTER USER "voc" SET SCHEMA "voc";
-SELECT users.name, users.fullname, schemas.name
-       FROM sys.users, sys.schemas
-       WHERE users.default_schema = schemas.id;
diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql 
b/sql/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql
deleted file mode 100644
--- a/sql/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-START TRANSACTION;
-
-ALTER USER "voc" SET SCHEMA "sys";
-DROP SCHEMA "voc";
-DROP USER "voc";
-
-COMMIT;
diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.bat 
b/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.bat
deleted file mode 100755
--- a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.bat
+++ /dev/null
@@ -1,24 +0,0 @@
-@echo off
-echo user=monetdb>     .monetdb
-echo password=monetdb>>        .monetdb
-
-prompt # $t $g  
-echo on
-
-call java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p %MAPIPORT% -d 
%TSTDB% -f "%RELSRCDIR%\authorization.SF-1430616-data.sql"
-
-@echo off
-echo user=voc>         .monetdb
-echo password=voc>>    .monetdb
-echo on
-
-call java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p %MAPIPORT% -d 
%TSTDB% -q
-
-@echo off
-echo user=monetdb>     .monetdb
-echo password=monetdb>>        .monetdb
-echo on
-
-call java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p %MAPIPORT% -d 
%TSTDB% -f "%RELSRCDIR%\authorization.SF-1430616-drop_user.sql"
-
-@del .monetdb
diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.py 
b/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.py
@@ -0,0 +1,46 @@
+###
+# Check that when a user is decoupled from a schema, this dependency is
+#   properly removed and both the schema and the user can be dropped
+###
+
+from MonetDBtesting.sqltest import SQLTestCase
+
+with SQLTestCase() as tc:
+
+    # create the dependency of user `voc` on schema `voc`
+    tc.connect(username="monetdb", password="monetdb")
+    tc.execute("CREATE USER voc WITH PASSWORD 'voc' NAME 'VOC Explorer' SCHEMA 
sys;").assertSucceeded()
+    tc.execute("""
+            SELECT users.name, users.fullname, schemas.name as schema
+            FROM users, schemas
+            WHERE users.default_schema = schemas.id
+              AND users.name = 'voc';
+        """).assertSucceeded()\
+            .assertDataResultMatch([('voc', 'VOC Explorer', 'sys')])
+    tc.execute("CREATE SCHEMA voc AUTHORIZATION voc;").assertSucceeded()
+    tc.execute("ALTER USER voc SET SCHEMA voc;").assertSucceeded()
+    tc.execute("""
+            SELECT users.name, users.fullname, schemas.name as schema
+            FROM users, schemas
+            WHERE users.default_schema = schemas.id
+              AND users.name = 'voc';
+        """).assertSucceeded()\
+            .assertDataResultMatch([('voc', 'VOC Explorer', 'voc')])
+
+    # just use the new user once
+    tc.connect(username="voc", password="voc")
+    tc.execute("select 
current_schema;").assertSucceeded().assertDataResultMatch([('voc')])
+
+    tc.connect(username="monetdb", password="monetdb")
+    # we can drop neither of them yet
+    tc.execute("DROP SCHEMA voc;").assertFailed(err_code="2BM37", 
err_message="DROP SCHEMA: unable to drop schema 'voc' (there are database 
objects which depend on it)")
+    tc.execute("DROP USER voc;").assertFailed(err_code="M1M05", 
err_message="DROP USER: 'voc' owns a schema")
+    # remove the dependency so that we can drop both of them
+    tc.execute("""
+            START TRANSACTION;
+            ALTER USER voc SET SCHEMA sys;
+            DROP SCHEMA voc;
+            DROP USER voc;
+            COMMIT;
+        """).assertSucceeded()
+
diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh 
b/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh
deleted file mode 100755
--- a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-cat << EOF > .monetdb
-user=monetdb
-password=monetdb
-EOF
-
-Mlog -x "java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p $MAPIPORT -d 
${TSTDB} -f \"$RELSRCDIR/authorization.SF-1430616-data.sql\""
-
-cat << EOF > .monetdb
-user=voc
-password=voc
-EOF
-
-Mlog -x "java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p $MAPIPORT -d 
${TSTDB} -q"
-
-cat << EOF > .monetdb
-user=monetdb
-password=monetdb
-EOF
-
-Mlog -x "java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p $MAPIPORT -d 
${TSTDB} -f \"$RELSRCDIR/authorization.SF-1430616-drop_user.sql\""
-
-rm -f .monetdb
diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.err 
b/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.err
deleted file mode 100644
--- a/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.err
+++ /dev/null
@@ -1,95 +0,0 @@
-stderr of test 'authorization.SF-1430616` in directory 'sql/test/BugTracker` 
itself:
-
-
-# 11:28:15 >  
-# 11:28:15 >   mserver5 
"--config=/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/etc/monetdb5.conf"
 --debug=10 --set gdk_nr_threads=0 --set 
"monet_mod_path=/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/lib:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/bin"
 --set 
"gdk_dbfarm=/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/dbfarm"
 --set 
"sql_logdir=/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/sqllog"
 --set 
"xquery_logdir=/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/xquerylog"
  --set mapi_open=true --set xrpc_open=true --set mapi_port=32408 --set 
xrpc_port=41265 --set monet_prompt= --trace  
"--dbname=mTests_src_test_BugTracker" --set mal_listing=0 "--dbinit= include 
sql;" ; echo ; echo Over..
-# 11:28:15 >  
-
-# builtin opt  gdk_arch = 64bitx86_64-pc-solaris2.11
-# builtin opt  gdk_version = 1.30.0
-# builtin opt  prefix = 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc
-# builtin opt  exec_prefix = ${prefix}
-# builtin opt  gdk_dbname = tst
-# builtin opt  gdk_dbfarm = ${prefix}/var/MonetDB
-# builtin opt  gdk_debug = 8
-# builtin opt  gdk_alloc_map = yes
-# builtin opt  gdk_vmtrim = yes
-# builtin opt  monet_admin = adm
-# builtin opt  monet_prompt = >
-# builtin opt  monet_welcome = yes
-# builtin opt  monet_mod_path = 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB
-# builtin opt  monet_daemon = yes
-# builtin opt  host = localhost
-# builtin opt  mapi_port = 50000
-# builtin opt  mapi_noheaders = no
-# builtin opt  mapi_debug = 0
-# builtin opt  mapi_clients = 2
-# builtin opt  sql_debug = 0
-# builtin opt  sql_logdir = sql_logs
-# builtin opt  xquery_logdir = xquery_logs
-# builtin opt  standoff_ns = http://monetdb.cwi.nl/standoff
-# builtin opt  standoff_start = start
-# builtin opt  standoff_end = end
-# config opt   prefix = 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc
-# config opt   config = ${prefix}/etc/monetdb5.conf
-# config opt   prefix = 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc
-# config opt   exec_prefix = ${prefix}
-# config opt   gdk_dbfarm = ${prefix}/var/MonetDB5/dbfarm
-# config opt   gdk_dbname = demo
-# config opt   gdk_alloc_map = no
-# config opt   gdk_embedded = no
-# config opt   gdk_debug = 0
-# config opt   monet_mod_path = 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/lib:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/bin
-# config opt   monet_daemon = no
-# config opt   monet_welcome = yes
-# config opt   mero_msglog = ${prefix}/var/log/MonetDB/merovingian.log
-# config opt   mero_errlog = ${prefix}/var/log/MonetDB/merovingian.log
-# config opt   mero_pidfile = ${prefix}/var/run/MonetDB/merovingian.pid
-# config opt   mero_exittimeout = 7
-# config opt   mero_doproxy = yes
-# config opt   mero_discoveryttl = 600
-# config opt   mal_init = 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/mal_init.mal
-# config opt   mal_listing = 2
-# config opt   mapi_port = 50000
-# config opt   mapi_open = false
-# config opt   sql_logdir = sql_logs
-# cmdline opt  config = 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/etc/monetdb5.conf
-# cmdline opt  gdk_nr_threads = 0
-# cmdline opt  monet_mod_path = 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/lib:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/bin
-# cmdline opt  gdk_dbfarm = 
/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/dbfarm
-# cmdline opt  sql_logdir = 
/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/sqllog
-# cmdline opt  xquery_logdir = 
/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/xquerylog
-# cmdline opt  mapi_open = true
-# cmdline opt  xrpc_open = true
-# cmdline opt  mapi_port = 32408
-# cmdline opt  xrpc_port = 41265
-# cmdline opt  monet_prompt = 
-# cmdline opt  gdk_dbname = mTests_src_test_BugTracker
-# cmdline opt  mal_listing = 0
-#warning: please don't forget to set your vault key!
-#(see 
/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/etc/monetdb5.conf)
-
-# 11:28:16 >  
-# 11:28:16 >  ./authorization.SF-1430616.SQL.sh authorization.SF-1430616 
-# 11:28:16 >  
-
-
-# 11:28:16 >  
-# 11:28:16 >  Mtimeout -timeout 60  java nl.cwi.monetdb.client.JdbcClient -e 
-h pegasus -p 32408 -d mTests_src_test_BugTracker -f 
"../../../../../../../../../../mirror/fabian/monetdb/stable/sql/src/test/BugTracker/Tests/authorization.SF-1430616-data.sql"
-# 11:28:16 >  
-
-
-# 11:28:17 >  
-# 11:28:17 >  Mtimeout -timeout 60  java nl.cwi.monetdb.client.JdbcClient -e 
-h pegasus -p 32408 -d mTests_src_test_BugTracker -q
-# 11:28:17 >  
-
-
-# 11:28:17 >  
-# 11:28:17 >  Mtimeout -timeout 60  java nl.cwi.monetdb.client.JdbcClient -e 
-h pegasus -p 32408 -d mTests_src_test_BugTracker -f 
"../../../../../../../../../../mirror/fabian/monetdb/stable/sql/src/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql"
-# 11:28:17 >  
-
-
-# 11:28:18 >  
-# 11:28:18 >  Done.
-# 11:28:18 >  
-
diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out 
b/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out
deleted file mode 100644
--- a/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out
+++ /dev/null
@@ -1,87 +0,0 @@
-stdout of test 'authorization.SF-1430616` in directory 'sql/test/BugTracker` 
itself:
-
-
-# 17:04:39 >  
-# 17:04:39 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=38700" "--set" 
"mapi_usock=/var/tmp/mtest-7090/.s.monetdb.38700" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/ufs/sjoerd/Monet-devel/var/MonetDB/mTests_sql_test_BugTracker" 
"--set" "embedded_r=yes" "--set" "embedded_py=true"
-# 17:04:39 >  
-
-# MonetDB 5 server v11.24.0 (hg id: 0ab1bb99d0ea)
-# This is an unreleased version
-# Serving database 'mTests_sql_test_BugTracker', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers
-# Found 15.589 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2016 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://madrid.da.cwi.nl:38700/
-# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-7090/.s.monetdb.38700
-# MonetDB/GIS module loaded
-# MonetDB/SQL module loaded
-# MonetDB/Python module loaded
-# MonetDB/R   module loaded
-
-# 12:18:29 >  
-# 12:18:29 >  "./authorization.SF-1430616.SQL.sh" "authorization.SF-1430616"
-# 12:18:29 >  
-
-
-# 17:04:39 >  
-# 17:04:39 >  Mtimeout -timeout 60  java nl.cwi.monetdb.client.JdbcClient -e 
-h localhost -p 38700 -d mTests_sql_test_BugTracker -f 
"../../../../../../../../scratch1/sjoerd/src/MonetDB/devel/sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql"
-# 17:04:39 >  
-
-CREATE USER "voc" WITH PASSWORD 'voc' NAME 'VOC Explorer' SCHEMA "sys";
-Operation successful
-SELECT users.name, users.fullname, schemas.name
-       FROM users, schemas
-       WHERE users.default_schema = schemas.id;
-+-----------+---------------+------+
-| name    | fullname      | name |
-+===========+===============+======+
-| monetdb | MonetDB Admin | sys  |
-| .snapshot | Snapshot User | sys  |
-| voc     | VOC Explorer  | sys  |
-+-----------+---------------+------+
-3 rows
-CREATE SCHEMA "voc" AUTHORIZATION "voc";
-Operation successful
-ALTER USER "voc" SET SCHEMA "voc";
-Operation successful
-SELECT users.name, users.fullname, schemas.name
-       FROM sys.users, sys.schemas
-       WHERE users.default_schema = schemas.id;
-+-----------+---------------+------+
-| name    | fullname      | name |
-+===========+===============+======+
-| monetdb | MonetDB Admin | sys  |
-| .snapshot | Snapshot User | sys  |
-| voc     | VOC Explorer  | voc  |
-+-----------+---------------+------+
-3 rows
-
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to