Changeset: 4ee67da191f9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4ee67da191f9
Modified Files:
        sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.SQL.py
        
sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.stable.out
Branch: mtest
Log Message:

Silenced recently added test


diffs (143 lines):

diff --git 
a/sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.SQL.py 
b/sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.SQL.py
--- a/sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.SQL.py
+++ b/sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.SQL.py
@@ -4,62 +4,40 @@
 #   privileges associated with that role.
 ###
 
-import sys, time, pymonetdb, os
-
-def connect(username, password):
-    return pymonetdb.connect(database = os.getenv('TSTDB'),
-                             hostname = 'localhost',
-                             port = int(os.getenv('MAPIPORT')),
-                             username = username,
-                             password = password,
-                             autocommit = True)
-
-def query(conn, sql):
-    print(sql)
-    cur = conn.cursor()
-    try:
-        cur.execute(sql)
-    except pymonetdb.OperationalError as e:
-        print("!", e)
-        return
-    r = cur.fetchall()
-    cur.close()
-    print(r)
-
-def run(conn, sql):
-    print(sql)
-    try:
-        r = conn.execute(sql)
-    except pymonetdb.OperationalError as e:
-        print("!", e)
-        return
-    print('# OK')
+from MonetDBtesting.sqltest import SQLTestCase
 
 
-c1 = connect('monetdb', 'monetdb')
-# Create a user, schema and role
-run(c1, 'CREATE SCHEMA s1;')
-run(c1, 'CREATE USER bruce WITH PASSWORD \'bruce\' name \'willis\' schema s1;')
-run(c1, 'CREATE TABLE s1.test(d int);')
-run(c1, 'CREATE ROLE role1;')
-run(c1, 'GRANT ALL ON s1.test to role1;')
-run(c1, 'GRANT role1 TO bruce;')
+with SQLTestCase() as tc1:
+    with SQLTestCase() as tc2:
+        tc1.connect(username="monetdb", password="monetdb")
+        # Create a user, schema and role
+        tc1.execute("""
+        CREATE SCHEMA s1;
+        CREATE USER bruce WITH PASSWORD 'bruce' name 'willis' schema s1;
+        CREATE TABLE s1.test(d int);
+        CREATE ROLE role1;
+        GRANT ALL ON s1.test to role1;
+        GRANT role1 TO bruce;""").assertSucceeded()
 
-# Login as `bruce` and use `role1`
-c2 = connect('bruce', 'bruce')
-run(c2, 'SET role role1;')
-run(c2, 'INSERT INTO test VALUES (24), (42);')
-run(c2, 'UPDATE test SET d = 42 WHERE d <> 42;')
-run(c2, 'DELETE FROM test WHERE d = 42;')
-query(c2, 'SELECT * FROM test;')
+        # Login as `bruce` and use `role1`
+        tc2.connect(username="bruce", password="bruce")
+        tc2.execute('SET role role1;').assertSucceeded()
+        tc2.execute('INSERT INTO test VALUES (24), 
(42);').assertSucceeded().assertRowCount(2)
+        tc2.execute('UPDATE test SET d = 42 WHERE d <> 
42;').assertSucceeded().assertRowCount(1)
+        tc2.execute('DELETE FROM test WHERE d = 
42;').assertSucceeded().assertRowCount(2)
+        tc2.execute('SELECT * FROM 
test;').assertSucceeded().assertRowCount(0).assertDataResultMatch([])
+
+        # Revoke `role1` from `bruce`
+        tc1.execute('REVOKE role1 FROM bruce;').assertSucceeded()
 
-# Revoke `role1` from `bruce`
-run(c1, 'REVOKE role1 FROM bruce;')
+        # `bruce` should not be able to access `test` again:
+        tc2.execute('INSERT INTO test VALUES (24), 
(42);').assertSucceeded().assertRowCount(2)
+        tc2.execute('UPDATE test SET d = 42 WHERE d <> 
42;').assertSucceeded().assertRowCount(1)
+        tc2.execute('DELETE FROM test WHERE d = 
42;').assertSucceeded().assertRowCount(2)
+        tc2.execute('SELECT * FROM 
test;').assertSucceeded().assertRowCount(0).assertDataResultMatch([])
+        tc2.execute('SET ROLE role1; -- verifies role1 is 
gone').assertFailed(err_message="Role (role1) missing")
 
-# `bruce` should not be able to access `test` again:
-run(c2, 'INSERT INTO test VALUES (24), (42);')
-run(c2, 'UPDATE test SET d = 42 WHERE d <> 42;')
-run(c2, 'DELETE FROM test WHERE d = 42;')
-query(c2, 'SELECT * FROM test;')
-query(c2, 'SET role role1; -- verifies role1 is gone')
-
+    tc1.execute("""
+    DROP USER bruce;
+    DROP SCHEMA s1 CASCADE;
+    DROP ROLE role1""").assertSucceeded()
diff --git 
a/sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.stable.out 
b/sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.stable.out
--- a/sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.stable.out
+++ b/sql/test/BugTracker-2020/Tests/revokeRoleUserLoggedIN.Bug-7026.stable.out
@@ -5,41 +5,6 @@ stdout of test 'revokeRoleUserLoggedIN.B
 # 14:34:36 >  "/usr/bin/python3.8" "revokeRoleUserLoggedIN.Bug-7026.SQL.py" 
"revokeRoleUserLoggedIN.Bug-7026"
 # 14:34:36 >  
 
-CREATE SCHEMA s1;
-# OK
-CREATE USER bruce WITH PASSWORD 'bruce' name 'willis' schema s1;
-# OK
-CREATE TABLE s1.test(d int);
-# OK
-CREATE ROLE role1;
-# OK
-GRANT ALL ON s1.test to role1;
-# OK
-GRANT role1 TO bruce;
-# OK
-SET role role1;
-# OK
-INSERT INTO test VALUES (24), (42);
-# OK
-UPDATE test SET d = 42 WHERE d <> 42;
-# OK
-DELETE FROM test WHERE d = 42;
-# OK
-SELECT * FROM test;
-[]
-REVOKE role1 FROM bruce;
-# OK
-INSERT INTO test VALUES (24), (42);
-# OK
-UPDATE test SET d = 42 WHERE d <> 42;
-# OK
-DELETE FROM test WHERE d = 42;
-# OK
-SELECT * FROM test;
-[]
-SET role role1; -- verifies role1 is gone
-! 42000!Role (role1) missing
-
 
 # 14:34:37 >  
 # 14:34:37 >  "Done."
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to