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 -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to