Changeset: c9475f5c9773 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c9475f5c9773
Added Files:
sql/test/mapi/Tests/clientinfo-nonadmin.test
Removed Files:
sql/test/mapi/Tests/clientinfo-nonadmin.SQL.py
Branch: Aug2024
Log Message:
Convert sql/test/clientinfo-nonadmin into a sqllogictest
(I wasn't aware of @connection before)
diffs (133 lines):
diff --git a/sql/test/mapi/Tests/clientinfo-nonadmin.SQL.py
b/sql/test/mapi/Tests/clientinfo-nonadmin.SQL.py
deleted file mode 100644
--- a/sql/test/mapi/Tests/clientinfo-nonadmin.SQL.py
+++ /dev/null
@@ -1,61 +0,0 @@
-
-import os
-import sys
-from typing import List, Tuple
-import pymonetdb
-
-
-def connect(remark: str, **args) -> pymonetdb.Connection:
- dbname = os.environ['TSTDB']
- mapiport = os.environ['MAPIPORT']
- conn = pymonetdb.connect(dbname, port=mapiport, autocommit=True, **args)
- with conn.cursor() as c:
- c.execute("CALL sys.setclientinfo('ClientRemark', %s)", [remark])
- return conn
-
-def get_remarks(conn: pymonetdb.Connection) -> List[Tuple[int,str]]:
- with conn.cursor() as c:
- c.execute("SELECT sessionid, remark FROM sys.sessions ORDER BY
sessionid")
- return c.fetchall()
-
-def assert_equal(left, right):
- if left != right:
- print(f'LEFT: {left!r}\nRIGHT: {right!r}\n', file=sys.stderr)
- assert left == right
-
-
-#######################################################################
-# Connect as admin
-
-conn0 = connect('admin 0')
-assert_equal(get_remarks(conn0), [(0, 'admin 0')])
-
-
-#######################################################################
-# Create a user
-
-c0 = conn0.cursor()
-# try:
-# c0.execute('DROP USER nonadmin') # convenientduring interactive
testing
-# except pymonetdb.Error:
-# pass
-c0.execute("CREATE USER nonadmin WITH PASSWORD 'na' NAME 'Not Admin' SCHEMA
sys")
-
-
-#######################################################################
-# Connect as that user, twice
-
-conn1 = connect('user 1', user='nonadmin', password='na')
-conn2 = connect('user 2', user='nonadmin', password='na')
-
-
-#######################################################################
-# Check who can see what
-
-# admin can see both
-assert_equal(get_remarks(conn0), [(0, 'admin 0'), (1, 'user 1'), (2, 'user
2')])
-
-# users can only see themselves
-assert_equal(get_remarks(conn1), [(1, 'user 1'), (2, 'user 2')])
-assert_equal(get_remarks(conn2), [(1, 'user 1'), (2, 'user 2')])
-
diff --git a/sql/test/mapi/Tests/clientinfo-nonadmin.test
b/sql/test/mapi/Tests/clientinfo-nonadmin.test
new file mode 100644
--- /dev/null
+++ b/sql/test/mapi/Tests/clientinfo-nonadmin.test
@@ -0,0 +1,62 @@
+
+# admin logs in with ClientRemark and creates users
+
+statement ok
+CALL sys.setclientinfo('ClientRemark', 'admin')
+
+statement ok
+CREATE USER user1 WITH PASSWORD 'bla' NAME 'User 1' SCHEMA sys;
+
+statement ok
+CREATE USER user2 WITH PASSWORD 'bla' NAME 'User 2' SCHEMA sys;
+
+
+# user1 logs in with ClientRemark
+
+@connection(id=user1, username=user1, password=bla)
+statement ok
+CALL sys.setclientinfo('ClientRemark', 'user 1')
+
+
+# user2 logs in twice, with different ClientRemarks
+
+@connection(id=user2a, username=user2, password=bla)
+statement ok
+CALL sys.setclientinfo('ClientRemark', 'user 2a')
+
+@connection(id=user2b, username=user2, password=bla)
+statement ok
+CALL sys.setclientinfo('ClientRemark', 'user 2b')
+
+
+# Now verify what everybody sees
+
+query IT rowsort
+SELECT sessionid, remark FROM sys.sessions
+----
+0
+admin
+1
+user 1
+2
+user 2a
+3
+user 2b
+
+@connection(id=user1)
+query IT rowsort
+SELECT sessionid, remark FROM sys.sessions
+----
+1
+user 1
+
+@connection(id=user2a)
+query IT rowsort
+SELECT sessionid, remark FROM sys.sessions
+----
+2
+user 2a
+3
+user 2b
+
+
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]