@@ -11628,6 +11628,45 @@ def test_use_original_sql():
1162811628 assert model .post_statements_ [0 ].sql == "CREATE TABLE post (b INT)"
1162911629
1163011630
11631+ def test_grants ():
11632+ expressions = d .parse ("""
11633+ MODEL (
11634+ name test.table,
11635+ kind FULL,
11636+ grants (
11637+ 'select' = ['user1', 123, admin_role, 'user2'],
11638+ 'insert' = 'admin',
11639+ 'roles/bigquery.dataViewer' = ["group:data_eng@company.com", 'user:someone@company.com'],
11640+ 'update' = 'admin'
11641+ )
11642+ );
11643+ SELECT 1 as id
11644+ """ )
11645+ model = load_sql_based_model (expressions )
11646+ assert model .grants == {
11647+ "select" : ["user1" , "123" , "admin_role" , "user2" ],
11648+ "insert" : ["admin" ],
11649+ "roles/bigquery.dataViewer" : ["group:data_eng@company.com" , "user:someone@company.com" ],
11650+ "update" : ["admin" ],
11651+ }
11652+
11653+ model = create_sql_model (
11654+ "db.table" ,
11655+ parse_one ("SELECT 1 AS id" ),
11656+ kind = "FULL" ,
11657+ grants = {
11658+ "select" : ["user1" , "user2" ],
11659+ "insert" : ["admin" ],
11660+ "roles/bigquery.dataViewer" : "user:data_eng@company.com" ,
11661+ },
11662+ )
11663+ assert model .grants == {
11664+ "select" : ["user1" , "user2" ],
11665+ "insert" : ["admin" ],
11666+ "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11667+ }
11668+
11669+
1163111670@pytest .mark .parametrize (
1163211671 "kind" ,
1163311672 [
@@ -11805,21 +11844,6 @@ def test_grants_unresolved_macro_errors():
1180511844 load_sql_based_model (expressions3 )
1180611845
1180711846
11808- def test_grants_mixed_types_conversion ():
11809- expressions = d .parse ("""
11810- MODEL (
11811- name test.mixed_types,
11812- kind FULL,
11813- grants (
11814- 'select' = ['user1', 123, admin_role, 'user2']
11815- )
11816- );
11817- SELECT 1 as id
11818- """ )
11819- model = load_sql_based_model (expressions )
11820- assert model .grants == {"select" : ["user1" , "123" , "admin_role" , "user2" ]}
11821-
11822-
1182311847def test_grants_empty_values ():
1182411848 model1 = create_sql_model (
1182511849 "db.table" , parse_one ("SELECT 1 AS id" ), kind = "FULL" , grants = {"select" : []}
@@ -11830,24 +11854,6 @@ def test_grants_empty_values():
1183011854 assert model2 .grants is None
1183111855
1183211856
11833- def test_grants_backward_compatibility ():
11834- model = create_sql_model (
11835- "db.table" ,
11836- parse_one ("SELECT 1 AS id" ),
11837- kind = "FULL" ,
11838- grants = {
11839- "select" : ["user1" , "user2" ],
11840- "insert" : ["admin" ],
11841- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11842- },
11843- )
11844- assert model .grants == {
11845- "select" : ["user1" , "user2" ],
11846- "insert" : ["admin" ],
11847- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11848- }
11849-
11850-
1185111857@pytest .mark .parametrize (
1185211858 "kind, expected" ,
1185311859 [
0 commit comments