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