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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list