2 @message |
assert
+ Statement failed, SQLSTATE = 42000
+ unsuccessful metadata update
+ -REVOKE failed
+ -SYSDBA is not grantor of ROLE on ROLE_8462 to SYSDBA.
+ RDB$USER SYSDBA
+ RDB$GRANTOR TMP$8462
+ RDB$PRIVILEGE M
+ RDB$GRANT_OPTION 0
+ RDB$RELATION_NAME ROLE_8462
+ RDB$FIELD_NAME <null>
+ RDB$USER_TYPE 8
+ RDB$OBJECT_TYPE 13
- Records affected: 0
+ Records affected: 1
LOG DETAILS:
2025-06-27 16:34:12.313
2025-06-27 16:34:12.313 act = <firebird.qa.plugin.Action object at [hex]>
2025-06-27 16:34:12.313 tmp_user = <firebird.qa.plugin.User object at [hex]>
2025-06-27 16:34:12.313 tmp_role = <firebird.qa.plugin.Role object at [hex]>
2025-06-27 16:34:12.313
2025-06-27 16:34:12.313 @pytest.mark.version('>=4.0.6')
2025-06-27 16:34:12.313 def test_1(act: Action, tmp_user: User, tmp_role: Role):
2025-06-27 16:34:12.313
2025-06-27 16:34:12.313 test_sql = f"""
2025-06-27 16:34:12.314 set list on;
2025-06-27 16:34:12.314 set term ^;
2025-06-27 16:34:12.314 execute block as
2025-06-27 16:34:12.314 begin
2025-06-27 16:34:12.314 execute statement 'drop role {tmp_role.name}';
2025-06-27 16:34:12.314 when any do
2025-06-27 16:34:12.314 begin
2025-06-27 16:34:12.314 --- nop ---
2025-06-27 16:34:12.314 end
2025-06-27 16:34:12.314 end
2025-06-27 16:34:12.314 ^
2025-06-27 16:34:12.314 set term ;^
2025-06-27 16:34:12.314 commit;
2025-06-27 16:34:12.314
2025-06-27 16:34:12.314 grant RDB$ADMIN to {tmp_user.name};
2025-06-27 16:34:12.314
2025-06-27 16:34:12.314 commit;
2025-06-27 16:34:12.314 connect '{act.db.dsn}' user {tmp_user.name} password '{tmp_user.password}' role rdb$admin;
2025-06-27 16:34:12.314
2025-06-27 16:34:12.314 create role {tmp_role.name};
2025-06-27 16:34:12.315 grant {tmp_role.name} to {act.db.user};
2025-06-27 16:34:12.315
2025-06-27 16:34:12.315 commit;
2025-06-27 16:34:12.315 connect '{act.db.dsn}' user {act.db.user} password '{act.db.password}';
2025-06-27 16:34:12.315
2025-06-27 16:34:12.315 set count on;
2025-06-27 16:34:12.315
2025-06-27 16:34:12.315 --select * from rdb$user_privileges p where p.rdb$relation_name = upper('{tmp_role.name}');
2025-06-27 16:34:12.315 revoke {tmp_role.name} from {act.db.user};
2025-06-27 16:34:12.315 commit;
2025-06-27 16:34:12.315 select * from rdb$user_privileges p where p.rdb$relation_name = upper('{tmp_role.name}');
2025-06-27 16:34:12.315 """
2025-06-27 16:34:12.315
2025-06-27 16:34:12.315 expected_stdout = """
2025-06-27 16:34:12.315 Records affected: 0
2025-06-27 16:34:12.315 """
2025-06-27 16:34:12.315 act.expected_stdout = expected_stdout
2025-06-27 16:34:12.315 act.isql(input = test_sql, combine_output=True)
2025-06-27 16:34:12.315 > assert act.clean_stdout == act.clean_expected_stdout
2025-06-27 16:34:12.315 E assert
2025-06-27 16:34:12.315 E + Statement failed, SQLSTATE = 42000
2025-06-27 16:34:12.316 E + unsuccessful metadata update
2025-06-27 16:34:12.316 E + -REVOKE failed
2025-06-27 16:34:12.316 E + -SYSDBA is not grantor of ROLE on ROLE_8462 to SYSDBA.
2025-06-27 16:34:12.316 E + RDB$USER SYSDBA
2025-06-27 16:34:12.316 E + RDB$GRANTOR TMP$8462
2025-06-27 16:34:12.316 E + RDB$PRIVILEGE M
2025-06-27 16:34:12.316 E + RDB$GRANT_OPTION 0
2025-06-27 16:34:12.316 E + RDB$RELATION_NAME ROLE_8462
2025-06-27 16:34:12.316 E + RDB$FIELD_NAME <null>
2025-06-27 16:34:12.316 E + RDB$USER_TYPE 8
2025-06-27 16:34:12.316 E + RDB$OBJECT_TYPE 13
2025-06-27 16:34:12.316 E - Records affected: 0
2025-06-27 16:34:12.316 E + Records affected: 1
2025-06-27 16:34:12.316
2025-06-27 16:34:12.316 tests\bugs\gh_8462_test.py:65: AssertionError
2025-06-27 16:34:12.316 ---------------------------- Captured stdout setup ----------------------------
2025-06-27 16:34:12.316 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_11599\test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2025-06-27 16:34:12.317 CREATE user: TMP$8462 PLUGIN: Srp
2025-06-27 16:34:12.317 CREATE role: ROLE_8462
2025-06-27 16:34:12.317 -------------------------- Captured stdout teardown ---------------------------
2025-06-27 16:34:12.317 DROP role: ROLE_8462
2025-06-27 16:34:12.317 DROP user: TMP$8462 PLUGIN: Srp
|
3 #text |
act = <firebird.qa.plugin.Action pytest object at [hex]>
tmp_user = <firebird.qa.plugin.User pytest object at [hex]>
tmp_role = <firebird.qa.plugin.Role pytest object at [hex]>
@pytest.mark.version('>=4.0.6')
def test_1(act: Action, tmp_user: User, tmp_role: Role):
test_sql = f"""
set list on;
set term ^;
execute block as
begin
execute statement 'drop role {tmp_role.name}';
when any do
begin
--- nop ---
end
end
^
set term ;^
commit;
grant RDB$ADMIN to {tmp_user.name};
commit;
connect '{act.db.dsn}' user {tmp_user.name} password '{tmp_user.password}' role rdb$admin;
create role {tmp_role.name};
grant {tmp_role.name} to {act.db.user};
commit;
connect '{act.db.dsn}' user {act.db.user} password '{act.db.password}';
set count on;
--select * from rdb$user_privileges p where p.rdb$relation_name = upper('{tmp_role.name}');
revoke {tmp_role.name} from {act.db.user};
commit;
select * from rdb$user_privileges p where p.rdb$relation_name = upper('{tmp_role.name}');
"""
expected_stdout = """
Records affected: 0
"""
act.expected_stdout = expected_stdout
act.isql(input = test_sql, combine_output=True)
> assert act.clean_stdout == act.clean_expected_stdout
E assert
E + Statement failed, SQLSTATE = 42000
E + unsuccessful metadata update
E + -REVOKE failed
E + -SYSDBA is not grantor of ROLE on ROLE_8462 to SYSDBA.
E + RDB$USER SYSDBA
E + RDB$GRANTOR TMP$8462
E + RDB$PRIVILEGE M
E + RDB$GRANT_OPTION 0
E + RDB$RELATION_NAME ROLE_8462
E + RDB$FIELD_NAME <null>
E + RDB$USER_TYPE 8
E + RDB$OBJECT_TYPE 13
E - Records affected: 0
E + Records affected: 1
tests\bugs\gh_8462_test.py:65: AssertionError
|