@@ -11804,6 +11804,45 @@ def my_macro(evaluator):
1180411804 assert model .render_query_or_raise ().sql () == 'SELECT 3 AS "c"'
1180511805
1180611806
11807+ def test_grants ():
11808+ expressions = d .parse ("""
11809+ MODEL (
11810+ name test.table,
11811+ kind FULL,
11812+ grants (
11813+ 'select' = ['user1', 123, admin_role, 'user2'],
11814+ 'insert' = 'admin',
11815+ 'roles/bigquery.dataViewer' = ["group:data_eng@company.com", 'user:someone@company.com'],
11816+ 'update' = 'admin'
11817+ )
11818+ );
11819+ SELECT 1 as id
11820+ """ )
11821+ model = load_sql_based_model (expressions )
11822+ assert model .grants == {
11823+ "select" : ["user1" , "123" , "admin_role" , "user2" ],
11824+ "insert" : ["admin" ],
11825+ "roles/bigquery.dataViewer" : ["group:data_eng@company.com" , "user:someone@company.com" ],
11826+ "update" : ["admin" ],
11827+ }
11828+
11829+ model = create_sql_model (
11830+ "db.table" ,
11831+ parse_one ("SELECT 1 AS id" ),
11832+ kind = "FULL" ,
11833+ grants = {
11834+ "select" : ["user1" , "user2" ],
11835+ "insert" : ["admin" ],
11836+ "roles/bigquery.dataViewer" : "user:data_eng@company.com" ,
11837+ },
11838+ )
11839+ assert model .grants == {
11840+ "select" : ["user1" , "user2" ],
11841+ "insert" : ["admin" ],
11842+ "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11843+ }
11844+
11845+
1180711846@pytest .mark .parametrize (
1180811847 "kind" ,
1180911848 [
@@ -11981,21 +12020,6 @@ def test_grants_unresolved_macro_errors():
1198112020 load_sql_based_model (expressions3 )
1198212021
1198312022
11984- def test_grants_mixed_types_conversion ():
11985- expressions = d .parse ("""
11986- MODEL (
11987- name test.mixed_types,
11988- kind FULL,
11989- grants (
11990- 'select' = ['user1', 123, admin_role, 'user2']
11991- )
11992- );
11993- SELECT 1 as id
11994- """ )
11995- model = load_sql_based_model (expressions )
11996- assert model .grants == {"select" : ["user1" , "123" , "admin_role" , "user2" ]}
11997-
11998-
1199912023def test_grants_empty_values ():
1200012024 model1 = create_sql_model (
1200112025 "db.table" , parse_one ("SELECT 1 AS id" ), kind = "FULL" , grants = {"select" : []}
@@ -12006,24 +12030,6 @@ def test_grants_empty_values():
1200612030 assert model2 .grants is None
1200712031
1200812032
12009- def test_grants_backward_compatibility ():
12010- model = create_sql_model (
12011- "db.table" ,
12012- parse_one ("SELECT 1 AS id" ),
12013- kind = "FULL" ,
12014- grants = {
12015- "select" : ["user1" , "user2" ],
12016- "insert" : ["admin" ],
12017- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
12018- },
12019- )
12020- assert model .grants == {
12021- "select" : ["user1" , "user2" ],
12022- "insert" : ["admin" ],
12023- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
12024- }
12025-
12026-
1202712033@pytest .mark .parametrize (
1202812034 "kind, expected" ,
1202912035 [
0 commit comments