Changeset: e719326d3608 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e719326d3608 Modified Files: sql/test/Views/Tests/Indirect.py Branch: indirect-privs Log Message:
Updated test diffs (47 lines): diff --git a/sql/test/Views/Tests/Indirect.py b/sql/test/Views/Tests/Indirect.py --- a/sql/test/Views/Tests/Indirect.py +++ b/sql/test/Views/Tests/Indirect.py @@ -16,7 +16,7 @@ create table foo.tab2 (col1 int, col2 in insert into foo.tab1 values (1, 1); insert into foo.tab2 values (2, 2); create view foo.v1(col1,col2) as (select col1, col2 from foo.tab1); -create view foo.v2(col1,col2) as (select col1, col2 from foo.tab2); +create view foo.v2(col1,col2) as (select v1.col1 + v1.col2, v1.col2 + 10 from foo.v1, foo.tab2); commit; """) cur1.close() @@ -49,6 +49,7 @@ conn1 = pymonetdb.connect(port=port,data cur1 = conn1.cursor() cur1.execute(""" grant select ("col1") ON "foo"."v1" TO u1; +grant select ("col1") ON "foo"."v2" TO u2; """) cur1.close() conn1.close() @@ -73,6 +74,26 @@ except pymonetdb.DatabaseError as e: cur1.close() conn1.close() +conn1 = pymonetdb.connect(port=port,database=db,autocommit=True,username='u2',password='2') +cur1 = conn1.cursor() +cur1.execute('SELECT "col1" FROM "foo"."v2";') +if cur1.fetchall() != [(2, )]: + sys.stderr.write("[(2, )] expected") +try: + cur1.execute('SELECT "col2" FROM "foo"."v2";') # error, not allowed + sys.stderr.write("Exception expected") +except pymonetdb.DatabaseError as e: + if "SELECT: identifier 'col2' unknown" not in str(e): + sys.stderr.write('Wrong error %s, expected "SELECT: identifier \'col2\' unknown' % (str(e))) +try: + cur1.execute('SELECT "col1" FROM "foo"."v1";') # error, not allowed + sys.stderr.write("Exception expected") +except pymonetdb.DatabaseError as e: + if "SELECT: access denied for u2 to view 'foo.v1'" not in str(e): + sys.stderr.write('Wrong error %s, expected SELECT: access denied for u2 to view \'foo.v1\'' % (str(e))) +cur1.close() +conn1.close() + conn1 = pymonetdb.connect(port=port,database=db,autocommit=True,username='monetdb',password='monetdb') cur1 = conn1.cursor() cur1.execute(""" _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list