@@ -11831,6 +11831,45 @@ def my_macro(evaluator):
1183111831 assert model .render_query_or_raise ().sql () == 'SELECT 3 AS "c"'
1183211832
1183311833
11834+ def test_grants ():
11835+ expressions = d .parse ("""
11836+ MODEL (
11837+ name test.table,
11838+ kind FULL,
11839+ grants (
11840+ 'select' = ['user1', 123, admin_role, 'user2'],
11841+ 'insert' = 'admin',
11842+ 'roles/bigquery.dataViewer' = ["group:data_eng@company.com", 'user:someone@company.com'],
11843+ 'update' = 'admin'
11844+ )
11845+ );
11846+ SELECT 1 as id
11847+ """ )
11848+ model = load_sql_based_model (expressions )
11849+ assert model .grants == {
11850+ "select" : ["user1" , "123" , "admin_role" , "user2" ],
11851+ "insert" : ["admin" ],
11852+ "roles/bigquery.dataViewer" : ["group:data_eng@company.com" , "user:someone@company.com" ],
11853+ "update" : ["admin" ],
11854+ }
11855+
11856+ model = create_sql_model (
11857+ "db.table" ,
11858+ parse_one ("SELECT 1 AS id" ),
11859+ kind = "FULL" ,
11860+ grants = {
11861+ "select" : ["user1" , "user2" ],
11862+ "insert" : ["admin" ],
11863+ "roles/bigquery.dataViewer" : "user:data_eng@company.com" ,
11864+ },
11865+ )
11866+ assert model .grants == {
11867+ "select" : ["user1" , "user2" ],
11868+ "insert" : ["admin" ],
11869+ "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11870+ }
11871+
11872+
1183411873@pytest .mark .parametrize (
1183511874 "kind" ,
1183611875 [
@@ -12008,21 +12047,6 @@ def test_grants_unresolved_macro_errors():
1200812047 load_sql_based_model (expressions3 )
1200912048
1201012049
12011- def test_grants_mixed_types_conversion ():
12012- expressions = d .parse ("""
12013- MODEL (
12014- name test.mixed_types,
12015- kind FULL,
12016- grants (
12017- 'select' = ['user1', 123, admin_role, 'user2']
12018- )
12019- );
12020- SELECT 1 as id
12021- """ )
12022- model = load_sql_based_model (expressions )
12023- assert model .grants == {"select" : ["user1" , "123" , "admin_role" , "user2" ]}
12024-
12025-
1202612050def test_grants_empty_values ():
1202712051 model1 = create_sql_model (
1202812052 "db.table" , parse_one ("SELECT 1 AS id" ), kind = "FULL" , grants = {"select" : []}
@@ -12033,24 +12057,6 @@ def test_grants_empty_values():
1203312057 assert model2 .grants is None
1203412058
1203512059
12036- def test_grants_backward_compatibility ():
12037- model = create_sql_model (
12038- "db.table" ,
12039- parse_one ("SELECT 1 AS id" ),
12040- kind = "FULL" ,
12041- grants = {
12042- "select" : ["user1" , "user2" ],
12043- "insert" : ["admin" ],
12044- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
12045- },
12046- )
12047- assert model .grants == {
12048- "select" : ["user1" , "user2" ],
12049- "insert" : ["admin" ],
12050- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
12051- }
12052-
12053-
1205412060@pytest .mark .parametrize (
1205512061 "kind, expected" ,
1205612062 [
0 commit comments