@@ -11715,6 +11715,45 @@ def test_use_original_sql():
1171511715 assert model .post_statements_ [0 ].sql == "CREATE TABLE post (b INT)"
1171611716
1171711717
11718+ def test_grants ():
11719+ expressions = d .parse ("""
11720+ MODEL (
11721+ name test.table,
11722+ kind FULL,
11723+ grants (
11724+ 'select' = ['user1', 123, admin_role, 'user2'],
11725+ 'insert' = 'admin',
11726+ 'roles/bigquery.dataViewer' = ["group:data_eng@company.com", 'user:someone@company.com'],
11727+ 'update' = 'admin'
11728+ )
11729+ );
11730+ SELECT 1 as id
11731+ """ )
11732+ model = load_sql_based_model (expressions )
11733+ assert model .grants == {
11734+ "select" : ["user1" , "123" , "admin_role" , "user2" ],
11735+ "insert" : ["admin" ],
11736+ "roles/bigquery.dataViewer" : ["group:data_eng@company.com" , "user:someone@company.com" ],
11737+ "update" : ["admin" ],
11738+ }
11739+
11740+ model = create_sql_model (
11741+ "db.table" ,
11742+ parse_one ("SELECT 1 AS id" ),
11743+ kind = "FULL" ,
11744+ grants = {
11745+ "select" : ["user1" , "user2" ],
11746+ "insert" : ["admin" ],
11747+ "roles/bigquery.dataViewer" : "user:data_eng@company.com" ,
11748+ },
11749+ )
11750+ assert model .grants == {
11751+ "select" : ["user1" , "user2" ],
11752+ "insert" : ["admin" ],
11753+ "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11754+ }
11755+
11756+
1171811757@pytest .mark .parametrize (
1171911758 "kind" ,
1172011759 [
@@ -11892,21 +11931,6 @@ def test_grants_unresolved_macro_errors():
1189211931 load_sql_based_model (expressions3 )
1189311932
1189411933
11895- def test_grants_mixed_types_conversion ():
11896- expressions = d .parse ("""
11897- MODEL (
11898- name test.mixed_types,
11899- kind FULL,
11900- grants (
11901- 'select' = ['user1', 123, admin_role, 'user2']
11902- )
11903- );
11904- SELECT 1 as id
11905- """ )
11906- model = load_sql_based_model (expressions )
11907- assert model .grants == {"select" : ["user1" , "123" , "admin_role" , "user2" ]}
11908-
11909-
1191011934def test_grants_empty_values ():
1191111935 model1 = create_sql_model (
1191211936 "db.table" , parse_one ("SELECT 1 AS id" ), kind = "FULL" , grants = {"select" : []}
@@ -11917,24 +11941,6 @@ def test_grants_empty_values():
1191711941 assert model2 .grants is None
1191811942
1191911943
11920- def test_grants_backward_compatibility ():
11921- model = create_sql_model (
11922- "db.table" ,
11923- parse_one ("SELECT 1 AS id" ),
11924- kind = "FULL" ,
11925- grants = {
11926- "select" : ["user1" , "user2" ],
11927- "insert" : ["admin" ],
11928- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11929- },
11930- )
11931- assert model .grants == {
11932- "select" : ["user1" , "user2" ],
11933- "insert" : ["admin" ],
11934- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11935- }
11936-
11937-
1193811944@pytest .mark .parametrize (
1193911945 "kind, expected" ,
1194011946 [
0 commit comments