Skip to content

Commit 9d9922d

Browse files
authored
Merge pull request #48 from kraken-tech/add-test-for-fix-permission-checks-role-membership
Add test for previously-updated permission check queries
2 parents 68f0cf3 + 96df501 commit 9d9922d

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

tests/test_repack.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1974,6 +1974,52 @@ def test_user_with_bare_minimum_permissions(connection: _psycopg.Connection) ->
19741974
)
19751975

19761976

1977+
def test_user_with_permissions_via_role(connection: _psycopg.Connection) -> None:
1978+
schema = "sweet_schema"
1979+
with _cur.get_cursor(connection, logged=True) as cur:
1980+
cur.execute(f"CREATE SCHEMA {schema};")
1981+
cur.execute(f"REVOKE CREATE ON SCHEMA {schema} FROM PUBLIC;")
1982+
cur.execute("DROP ROLE IF EXISTS owner_role;")
1983+
cur.execute("CREATE ROLE owner_role CREATEROLE;")
1984+
cur.execute("GRANT CREATE, USAGE ON SCHEMA sweet_schema TO owner_role;")
1985+
cur.execute("DROP USER IF EXISTS sweet_user;")
1986+
cur.execute("CREATE USER sweet_user;")
1987+
cur.execute("GRANT owner_role TO sweet_user;")
1988+
cur.execute("SET ROLE owner_role;")
1989+
factories.create_table_for_repacking(
1990+
connection=connection,
1991+
cur=cur,
1992+
table_name="to_repack",
1993+
rows=10,
1994+
schema=schema,
1995+
)
1996+
table_before = _collect_table_info(
1997+
table="to_repack",
1998+
connection=connection,
1999+
schema=schema,
2000+
)
2001+
cur.execute("SET ROLE sweet_user;")
2002+
repack = Psycopack(
2003+
table="to_repack",
2004+
batch_size=1,
2005+
conn=connection,
2006+
cur=cur,
2007+
schema=schema,
2008+
)
2009+
repack.full()
2010+
table_after = _collect_table_info(
2011+
table="to_repack",
2012+
connection=connection,
2013+
schema=schema,
2014+
)
2015+
_assert_repack(
2016+
table_before=table_before,
2017+
table_after=table_after,
2018+
repack=repack,
2019+
cur=cur,
2020+
)
2021+
2022+
19772023
def test_when_repack_is_reinstantiated_after_swapping(
19782024
connection: _psycopg.Connection,
19792025
) -> None:

0 commit comments

Comments
 (0)