Changeset: 28bfbbee022f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/28bfbbee022f
Added Files:
        sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.test
        sql/test/BugTracker-2015/Tests/grantAndRevokeUserLoggedIN.Bug-3476.test
        sql/test/BugTracker-2015/Tests/grantRole.Bug-3772.test
        sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.test
Removed Files:
        sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.py
        
sql/test/BugTracker-2015/Tests/grantAndRevokeUserLoggedIN.Bug-3476.SQL.py
        sql/test/BugTracker-2015/Tests/grantRole.Bug-3772.SQL.py
        sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.SQL.py
Branch: Sep2022
Log Message:

Converted some tests to .test format.


diffs (truncated from 374 to 300 lines):

diff --git a/sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.py 
b/sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.test
rename from sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.py
rename to sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.test
--- a/sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.py
+++ b/sql/test/BugDay_2005-10-06_2.8/Tests/mixed_type.SF-917372.test
@@ -1,7 +1,11 @@
-from MonetDBtesting.sqltest import SQLTestCase
+statement error 22018!conversion of string 'a' to type ...
+select 'a'+1
+
+statement error 22018!conversion of string 'a' to type ...
+select 1-'a'
 
-with SQLTestCase() as tc:
-    tc.connect(username="monetdb", password="monetdb")
-    tc.execute("select 'a'+1;").assertFailed() # it could be either string 
failed to convert to 'lng' or 'hge'
-    tc.execute("select 1-'a';").assertFailed() # it could be either string 
failed to convert to 'lng' or 'hge'
-    tc.execute("select 
true+1;").assertSucceeded().assertDataResultMatch([(2,)])
+query I nosort
+select true+1
+----
+2
+
diff --git 
a/sql/test/BugTracker-2015/Tests/grantAndRevokeUserLoggedIN.Bug-3476.SQL.py 
b/sql/test/BugTracker-2015/Tests/grantAndRevokeUserLoggedIN.Bug-3476.test
rename from 
sql/test/BugTracker-2015/Tests/grantAndRevokeUserLoggedIN.Bug-3476.SQL.py
rename to 
sql/test/BugTracker-2015/Tests/grantAndRevokeUserLoggedIN.Bug-3476.test
--- a/sql/test/BugTracker-2015/Tests/grantAndRevokeUserLoggedIN.Bug-3476.SQL.py
+++ b/sql/test/BugTracker-2015/Tests/grantAndRevokeUserLoggedIN.Bug-3476.test
@@ -1,46 +1,85 @@
-###
-# Assess that the user can use a granted privilege without having to logout.
-# Assess that a user can no longer use the privilege as soon as it was revoked.
-###
+statement ok
+CREATE SCHEMA new_schema_as_well
+
+statement ok
+SET SCHEMA new_schema_as_well
+
+statement ok
+CREATE TABLE test (x int, y int)
 
-from MonetDBtesting.sqltest import SQLTestCase
+statement ok
+INSERT INTO test VALUES (-1, -1)
+
+statement ok
+CREATE USER new_user WITH PASSWORD 'new_quite_long_password' NAME 'newUser' 
SCHEMA new_schema_as_well
+
+statement ok
+GRANT SELECT ON new_schema_as_well.test TO new_user
+
+statement ok
+GRANT UPDATE ON new_schema_as_well.test TO new_user
 
-with SQLTestCase() as tc1:
-    tc1.connect(username="monetdb", password="monetdb")
-    tc1.execute('CREATE SCHEMA new_schema_as_well').assertSucceeded()
-    tc1.execute('SET SCHEMA new_schema_as_well').assertSucceeded()
-    tc1.execute('CREATE TABLE test (x int, y int)').assertSucceeded()
-    tc1.execute('INSERT INTO test VALUES (-1, -1)').assertSucceeded()
+statement ok
+GRANT INSERT ON new_schema_as_well.test TO new_user
+
+statement ok
+GRANT DELETE ON new_schema_as_well.test TO new_user
+
+@connection(id=user, username=new_user, password=new_quite_long_password)
+statement ok
+SELECT * FROM test
 
-     # Create a new user and grant the right to select.
-    tc1.execute('CREATE USER new_user WITH PASSWORD 
\'new_quite_long_password\' NAME \'newUser\' SCHEMA 
new_schema_as_well').assertSucceeded()
-    tc1.execute('GRANT SELECT ON new_schema_as_well.test TO 
new_user').assertSucceeded()
-    tc1.execute('GRANT UPDATE ON new_schema_as_well.test TO 
new_user').assertSucceeded()
-    tc1.execute('GRANT INSERT ON new_schema_as_well.test TO 
new_user').assertSucceeded()
-    tc1.execute('GRANT DELETE ON new_schema_as_well.test TO 
new_user').assertSucceeded()
+@connection(id=user)
+statement ok
+UPDATE test SET x = -3 WHERE y = -1
+
+@connection(id=user)
+statement ok
+INSERT INTO test VALUES (0, 0)
+
+@connection(id=user)
+statement ok
+DELETE FROM test WHERE y = -2
 
-    with SQLTestCase() as tc2:
-        # Login the new user, and select.
-        tc2.connect(username='new_user', password='new_quite_long_password')
-        tc2.execute('SELECT * FROM test').assertSucceeded()
-        tc2.execute('UPDATE test SET x = -3 WHERE y = -1').assertSucceeded()
-        tc2.execute('INSERT INTO test VALUES (0, 0)').assertSucceeded()
-        tc2.execute('DELETE FROM test WHERE y = -2').assertSucceeded()
+# Revoke the right to select from the new user.
+statement ok
+REVOKE SELECT ON new_schema_as_well.test FROM new_user
+
+# The new user should not be able to select anymore while still logged in
+@connection(id=user)
+statement error 42000!SELECT: access denied for new_user to table 
'new_schema_as_well.test'
+SELECT * FROM test
 
-        # Revoke the right to select from the new user.
-        tc1.execute('REVOKE SELECT ON new_schema_as_well.test FROM 
new_user').assertSucceeded()
+@connection(id=user)
+statement error 42000!UPDATE: insufficient privileges for user 'new_user' to 
update table 'test'
+UPDATE test SET x = -66 WHERE y = 66
+
+@connection(id=user)
+statement ok
+INSERT INTO test VALUES (66, 66)
+
+@connection(id=user)
+statement error 42000!DELETE FROM: insufficient privileges for user 'new_user' 
to delete from table 'test'
+DELETE FROM test WHERE y = -66
 
-        # The new user should not be able to select anymore while still logged 
in
-        tc2.execute('SELECT * FROM test').assertFailed(err_code="42000", 
err_message="SELECT: access denied for new_user to table 
'new_schema_as_well.test'")
-        tc2.execute('UPDATE test SET x = -66 WHERE y = 
66').assertFailed(err_code="42000", err_message="UPDATE: insufficient 
privileges for user 'new_user' to update table 'test'")
-        tc2.execute('INSERT INTO test VALUES (66, 66)').assertSucceeded()
-        tc2.execute('DELETE FROM test WHERE y = 
-66').assertFailed(err_code="42000", err_message="DELETE FROM: insufficient 
privileges for user 'new_user' to delete from table 'test'")
+# Re-grant the right to select to the new user.
+statement ok
+GRANT SELECT ON new_schema_as_well.test TO new_user
+
+# The new user should be able to select again while still logged in
+@connection(id=user)
+statement ok
+SELECT * FROM test
 
-        # Re-grant the right to select to the new user.
-        tc1.execute('GRANT SELECT ON new_schema_as_well.test TO 
new_user').assertSucceeded()
+@connection(id=user)
+statement ok
+UPDATE test SET x = -66 WHERE y = 66
 
-        # The new user should be able to select again while still logged in
-        tc2.execute('SELECT * FROM test').assertSucceeded()
-        tc2.execute('UPDATE test SET x = -66 WHERE y = 66').assertSucceeded()
-        tc2.execute('INSERT INTO test VALUES (66, 66)').assertSucceeded()
-        tc2.execute('DELETE FROM test WHERE y = -66').assertSucceeded()
+@connection(id=user)
+statement ok
+INSERT INTO test VALUES (66, 66)
+
+@connection(id=user)
+statement ok
+DELETE FROM test WHERE y = -66
+
diff --git a/sql/test/BugTracker-2015/Tests/grantRole.Bug-3772.SQL.py 
b/sql/test/BugTracker-2015/Tests/grantRole.Bug-3772.test
rename from sql/test/BugTracker-2015/Tests/grantRole.Bug-3772.SQL.py
rename to sql/test/BugTracker-2015/Tests/grantRole.Bug-3772.test
--- a/sql/test/BugTracker-2015/Tests/grantRole.Bug-3772.SQL.py
+++ b/sql/test/BugTracker-2015/Tests/grantRole.Bug-3772.test
@@ -1,50 +1,89 @@
-###
-# Check that a user cannot grant a role to anyone, including themselves, if the
-#   role was not assigned to this user.
-# Check that the monetdb user, the role owner or a user granted with sysadmin
-#   can grant roles
-###
+statement ok
+CREATE SCHEMA s1
+
+statement ok
+CREATE USER bruce WITH PASSWORD 'bruce' name 'willis' schema s1
+
+statement ok
+CREATE USER alice WITH PASSWORD 'alice' name 'wonderland' schema s1
 
-from MonetDBtesting.sqltest import SQLTestCase
+statement ok
+CREATE TABLE s1.test(d int)
+
+statement ok
+CREATE ROLE role1
+
+statement ok
+GRANT ALL ON s1.test to role1
 
-with SQLTestCase() as mdb:
-    mdb.connect(username="monetdb", password="monetdb")
-    mdb.execute("""
-        CREATE SCHEMA s1;
-        CREATE USER bruce WITH PASSWORD 'bruce' name 'willis' schema s1;
-        CREATE USER alice WITH PASSWORD 'alice' name 'wonderland' schema s1;
-        CREATE TABLE s1.test(d int);
-        CREATE ROLE role1;
-        GRANT ALL ON s1.test to role1;
-     """).assertSucceeded()
+# check that bruce cannot grant role1
+@connection(id=bruce, username=bruce, password=bruce)
+statement error 42000!Role (role1) missing
+SET role role1
+
+@connection(id=bruce)
+statement error 42000!SELECT: access denied for bruce to table 's1.test'
+select * from test
+
+@connection(id=bruce)
+statement error 0P000!GRANT: Insufficient privileges to grant ROLE 'role1'
+GRANT role1 TO alice FROM current_user
+
+@connection(id=bruce)
+statement error 0P000!GRANT: Insufficient privileges to grant ROLE 'role1'
+GRANT role1 TO bruce FROM current_user
+
+# check that bruce can grant role1 once he's assigned the role
+statement ok
+GRANT role1 TO bruce WITH ADMIN OPTION
+
+@connection(id=bruce)
+statement ok
+SET role role1
 
-    with SQLTestCase() as bruce:
-        # check that bruce cannot grant role1
-        bruce.connect(username="bruce", password="bruce")
-        bruce.execute("SET role role1;").assertFailed(err_code="42000", 
err_message="Role (role1) missing")
-        bruce.execute("select * from test;").assertFailed(err_code="42000", 
err_message="SELECT: access denied for bruce to table 's1.test'")
-        bruce.execute("GRANT role1 TO alice FROM 
current_user;").assertFailed(err_code="0P000", err_message="GRANT: Insufficient 
privileges to grant ROLE 'role1'")
-        bruce.execute("GRANT role1 TO bruce FROM 
current_user;").assertFailed(err_code="0P000", err_message="GRANT: Insufficient 
privileges to grant ROLE 'role1'")
+@connection(id=bruce)
+query I nosort
+select * from test
+----
+
+@connection(id=bruce)
+statement ok
+GRANT role1 TO alice FROM current_user
 
-        # check that bruce can grant role1 once he's assigned the role
-        mdb.execute("GRANT role1 TO bruce WITH ADMIN 
OPTION;").assertSucceeded()
-        bruce.execute("SET role role1;").assertSucceeded()
-        bruce.execute("select * from test;").assertSucceeded()
-        bruce.execute("GRANT role1 TO alice FROM 
current_user;").assertSucceeded()
-        bruce.execute("GRANT role1 TO bruce FROM 
current_user;").assertFailed(err_code="M1M05", err_message="GRANT: User 'bruce' 
already has ROLE 'role1'")
+@connection(id=bruce)
+statement error M1M05!GRANT: User 'bruce' already has ROLE 'role1'
+GRANT role1 TO bruce FROM current_user
+
+# revoke role1 from bruce and check that he's lost his privileges
+statement ok
+REVOKE role1 FROM bruce
+
+statement ok
+REVOKE role1 FROM alice
 
-        # revoke role1 from bruce and check that he's lost his privileges
-        mdb.execute("REVOKE role1 FROM bruce;").assertSucceeded()
-        mdb.execute("REVOKE role1 FROM alice;").assertSucceeded()
-        with SQLTestCase() as bruce1: # reconnect to make sure role is gone.
-            bruce1.connect(username="bruce", password="bruce")
-            bruce1.execute("select * from 
test;").assertFailed(err_code="42000", err_message="SELECT: access denied for 
bruce to table 's1.test'")
-            bruce1.execute("GRANT role1 TO alice FROM 
current_user;").assertFailed(err_code="0P000", err_message="GRANT: Insufficient 
privileges to grant ROLE 'role1'")
+@connection(id=bruce1, username=bruce, password=bruce)
+statement error 42000!SELECT: access denied for bruce to table 's1.test'
+select * from test
+
+@connection(id=bruce1)
+statement error 0P000!GRANT: Insufficient privileges to grant ROLE 'role1'
+GRANT role1 TO alice FROM current_user
+
+# grant sysadmin to bruce and check that he now can do everything again
+# as a sysadmin
+statement ok
+GRANT sysadmin TO bruce
 
-            # grant sysadmin to bruce and check that he now can do everything 
again
-            # as a sysadmin
-            mdb.execute("GRANT sysadmin TO bruce;").assertSucceeded()
-            bruce1.execute("SET role sysadmin;").assertSucceeded()
-            bruce1.execute("select * from test;").assertSucceeded()
-            bruce1.execute("GRANT role1 TO alice FROM 
current_role;").assertSucceeded()
+@connection(id=bruce1)
+statement ok
+SET role sysadmin
 
+@connection(id=bruce1)
+query I nosort
+select * from test
+----
+
+@connection(id=bruce1)
+statement ok
+GRANT role1 TO alice FROM current_role
+
diff --git 
a/sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.SQL.py 
b/sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.test
rename from 
sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.SQL.py
rename to sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.test
--- a/sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.SQL.py
+++ b/sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.test
@@ -1,35 +1,52 @@
-###
-# Check that GRANT a ROLE to a USER once works, but GRANT it a second time is
-#   properly rejected with "GRANT: User '<usr>' already has ROLE '<role>'",
-#   which also prevents the related problems described in this bug, i.e.
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to