From 2f01f50ed75c58041db52d79719583241ee53360 Mon Sep 17 00:00:00 2001 From: pavel-zotov Date: Tue, 21 Feb 2023 12:54:35 +0300 Subject: [PATCH] Added/Updated tests\bugs\gh_7178_test.py: Checked on 5.0.0.958 --- tests/bugs/gh_7178_test.py | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/bugs/gh_7178_test.py diff --git a/tests/bugs/gh_7178_test.py b/tests/bugs/gh_7178_test.py new file mode 100644 index 00000000..ef10266b --- /dev/null +++ b/tests/bugs/gh_7178_test.py @@ -0,0 +1,45 @@ +#coding:utf-8 + +""" +ID: issue-7178 +ISSUE: 7178 +TITLE: DEFAULTed grants to PUBLIC must act as DEFAULTed to every user +NOTES: + [21.02.2023] pzotov + Confirmed problem on 5.0.0.494: role was not default when checked via RDB$ROLE_IN_USE() + Checked on 5.0.0.958 +""" + +import pytest +from firebird.qa import * + +db = db_factory() +tmp_user = user_factory('db', name = 'tmp_user_7178', password = '123') +tmp_role = role_factory('db', name = 'tmp_role_7178') +act = python_act('db') + +@pytest.mark.version('>=5.0') +def test_1(act: Action, tmp_user: User, tmp_role: Role): + + test_script = f""" + set list on; + + grant default {tmp_role.name} to public; + commit; + + connect '{act.db.dsn}' user {tmp_user.name} password '{tmp_user.password}'; + + select current_user as who_am_i,cast(r.rdb$role_name as varchar(31)) as role_name, rdb$role_in_use(r.rdb$role_name) role_in_use + from rdb$roles r + where r.rdb$role_name = upper('{tmp_role.name}'); + """ + + expected_stdout = f""" + WHO_AM_I {tmp_user.name.upper()} + ROLE_NAME {tmp_role.name.upper()} + ROLE_IN_USE + """ + + act.expected_stdout = expected_stdout + act.isql(switches=['-q'], input = test_script, combine_output=True) + assert act.clean_stdout == act.clean_expected_stdout