@@ -11774,6 +11774,45 @@ def my_macro(evaluator):
1177411774 assert model .render_query_or_raise ().sql () == 'SELECT 3 AS "c"'
1177511775
1177611776
11777+ def test_grants ():
11778+ expressions = d .parse ("""
11779+ MODEL (
11780+ name test.table,
11781+ kind FULL,
11782+ grants (
11783+ 'select' = ['user1', 123, admin_role, 'user2'],
11784+ 'insert' = 'admin',
11785+ 'roles/bigquery.dataViewer' = ["group:data_eng@company.com", 'user:someone@company.com'],
11786+ 'update' = 'admin'
11787+ )
11788+ );
11789+ SELECT 1 as id
11790+ """ )
11791+ model = load_sql_based_model (expressions )
11792+ assert model .grants == {
11793+ "select" : ["user1" , "123" , "admin_role" , "user2" ],
11794+ "insert" : ["admin" ],
11795+ "roles/bigquery.dataViewer" : ["group:data_eng@company.com" , "user:someone@company.com" ],
11796+ "update" : ["admin" ],
11797+ }
11798+
11799+ model = create_sql_model (
11800+ "db.table" ,
11801+ parse_one ("SELECT 1 AS id" ),
11802+ kind = "FULL" ,
11803+ grants = {
11804+ "select" : ["user1" , "user2" ],
11805+ "insert" : ["admin" ],
11806+ "roles/bigquery.dataViewer" : "user:data_eng@company.com" ,
11807+ },
11808+ )
11809+ assert model .grants == {
11810+ "select" : ["user1" , "user2" ],
11811+ "insert" : ["admin" ],
11812+ "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11813+ }
11814+
11815+
1177711816@pytest .mark .parametrize (
1177811817 "kind" ,
1177911818 [
@@ -11951,21 +11990,6 @@ def test_grants_unresolved_macro_errors():
1195111990 load_sql_based_model (expressions3 )
1195211991
1195311992
11954- def test_grants_mixed_types_conversion ():
11955- expressions = d .parse ("""
11956- MODEL (
11957- name test.mixed_types,
11958- kind FULL,
11959- grants (
11960- 'select' = ['user1', 123, admin_role, 'user2']
11961- )
11962- );
11963- SELECT 1 as id
11964- """ )
11965- model = load_sql_based_model (expressions )
11966- assert model .grants == {"select" : ["user1" , "123" , "admin_role" , "user2" ]}
11967-
11968-
1196911993def test_grants_empty_values ():
1197011994 model1 = create_sql_model (
1197111995 "db.table" , parse_one ("SELECT 1 AS id" ), kind = "FULL" , grants = {"select" : []}
@@ -11976,24 +12000,6 @@ def test_grants_empty_values():
1197612000 assert model2 .grants is None
1197712001
1197812002
11979- def test_grants_backward_compatibility ():
11980- model = create_sql_model (
11981- "db.table" ,
11982- parse_one ("SELECT 1 AS id" ),
11983- kind = "FULL" ,
11984- grants = {
11985- "select" : ["user1" , "user2" ],
11986- "insert" : ["admin" ],
11987- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11988- },
11989- )
11990- assert model .grants == {
11991- "select" : ["user1" , "user2" ],
11992- "insert" : ["admin" ],
11993- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11994- }
11995-
11996-
1199712003@pytest .mark .parametrize (
1199812004 "kind, expected" ,
1199912005 [
0 commit comments