88logger = logging .getLogger (__name__ )
99
1010
11- def test_describe_all_tables (ws : WorkspaceClient , make_catalog , make_schema , make_table ):
11+ def test_describe_all_tables_in_databases (ws : WorkspaceClient , make_catalog , make_schema , make_table ):
1212 warehouse_id = os .environ ["TEST_DEFAULT_WAREHOUSE_ID" ]
1313
1414 logger .info ("setting up fixtures" )
15- schema = make_schema (catalog = "hive_metastore" )
16- managed_table = make_table (schema = schema )
17- external_table = make_table (schema = schema , external = True )
18- tmp_table = make_table (schema = schema , ctas = "SELECT 2+2 AS four" )
19- view = make_table (schema = schema , ctas = "SELECT 2+2 AS four" , view = True )
20- non_delta = make_table (schema = schema , non_detla = True )
15+
16+ schema_a = make_schema (catalog = "hive_metastore" )
17+
18+ schema_b = make_schema (catalog = "hive_metastore" )
19+
20+ schema_c = make_schema (catalog = "hive_metastore" )
21+
22+ managed_table = make_table (schema = schema_a )
23+ external_table = make_table (schema = schema_b , external = True )
24+ tmp_table = make_table (schema = schema_a , ctas = "SELECT 2+2 AS four" )
25+ view = make_table (schema = schema_b , ctas = "SELECT 2+2 AS four" , view = True )
26+ non_delta = make_table (schema = schema_a , non_detla = True )
2127
2228 logger .info (
2329 f"managed_table={ managed_table } , "
@@ -28,10 +34,13 @@ def test_describe_all_tables(ws: WorkspaceClient, make_catalog, make_schema, mak
2834
2935 inventory_schema = make_schema (catalog = make_catalog ())
3036 inventory_catalog , inventory_schema = inventory_schema .split ("." )
31- tak = TaclToolkit (ws , inventory_catalog , inventory_schema , warehouse_id )
37+
38+ databases = [schema_a .split ("." )[1 ], schema_b .split ("." )[1 ], schema_c .split ("." )[1 ]]
39+
40+ tak = TaclToolkit (ws , inventory_catalog , inventory_schema , warehouse_id = warehouse_id , databases = databases )
3241
3342 all_tables = {}
34- for t in tak .database_snapshot (schema . split ( "." )[ 1 ] ):
43+ for t in tak .database_snapshot ():
3544 all_tables [t .key ] = t
3645
3746 assert len (all_tables ) == 5
@@ -43,28 +52,33 @@ def test_describe_all_tables(ws: WorkspaceClient, make_catalog, make_schema, mak
4352 assert all_tables [view ].view_text == "SELECT 2+2 AS four"
4453
4554
46- def test_all_grants_in_database (ws : WorkspaceClient , sql_exec , make_catalog , make_schema , make_table , make_group ):
55+ def test_all_grants_in_databases (ws : WorkspaceClient , sql_exec , make_catalog , make_schema , make_table , make_group ):
4756 warehouse_id = os .environ ["TEST_DEFAULT_WAREHOUSE_ID" ]
4857
4958 group_a = make_group ()
5059 group_b = make_group ()
51- schema = make_schema ()
52- table = make_table (schema = schema , external = True )
60+ schema_a = make_schema ()
61+ schema_b = make_schema ()
62+ table_a = make_table (schema = schema_a )
63+ table_b = make_table (schema = schema_b )
5364
5465 sql_exec (f"GRANT USAGE ON SCHEMA default TO `{ group_a .display_name } `" )
5566 sql_exec (f"GRANT USAGE ON SCHEMA default TO `{ group_b .display_name } `" )
56- sql_exec (f"GRANT SELECT ON TABLE { table } TO `{ group_a .display_name } `" )
57- sql_exec (f"GRANT MODIFY ON SCHEMA { schema } TO `{ group_b .display_name } `" )
67+ sql_exec (f"GRANT SELECT ON TABLE { table_a } TO `{ group_a .display_name } `" )
68+ sql_exec (f"GRANT SELECT ON TABLE { table_b } TO `{ group_b .display_name } `" )
69+ sql_exec (f"GRANT MODIFY ON SCHEMA { schema_b } TO `{ group_b .display_name } `" )
5870
5971 inventory_schema = make_schema (catalog = make_catalog ())
6072 inventory_catalog , inventory_schema = inventory_schema .split ("." )
61- tak = TaclToolkit (ws , inventory_catalog , inventory_schema , warehouse_id )
73+
74+ tak = TaclToolkit (ws , inventory_catalog , inventory_schema , warehouse_id = warehouse_id )
6275
6376 all_grants = {}
64- for grant in tak .grants_snapshot (schema . split ( "." )[ 1 ] ):
65- logger .info (f"grant:\n { grant } \n hive: { grant .hive_grant_sql ()} \n uc: { grant .uc_grant_sql ()} " )
77+ for grant in tak .grants_snapshot ():
78+ logging .info (f"grant:\n { grant } \n hive: { grant .hive_grant_sql ()} \n uc: { grant .uc_grant_sql ()} " )
6679 all_grants [f"{ grant .principal } .{ grant .object_key } " ] = grant .action_type
6780
68- assert len (all_grants ) >= 2 , "must have at least two grants"
69- assert all_grants [f"{ group_a .display_name } .{ table } " ] == "SELECT"
70- assert all_grants [f"{ group_b .display_name } .{ schema } " ] == "MODIFY"
81+ assert len (all_grants ) >= 3 , "must have at least three grants"
82+ assert all_grants [f"{ group_a .display_name } .{ table_a } " ] == "SELECT"
83+ assert all_grants [f"{ group_b .display_name } .{ table_b } " ] == "SELECT"
84+ assert all_grants [f"{ group_b .display_name } .{ schema_b } " ] == "MODIFY"
0 commit comments