@@ -11732,6 +11732,45 @@ def test_use_original_sql():
1173211732 assert model .post_statements_ [0 ].sql == "CREATE TABLE post (b INT)"
1173311733
1173411734
11735+ def test_grants ():
11736+ expressions = d .parse ("""
11737+ MODEL (
11738+ name test.table,
11739+ kind FULL,
11740+ grants (
11741+ 'select' = ['user1', 123, admin_role, 'user2'],
11742+ 'insert' = 'admin',
11743+ 'roles/bigquery.dataViewer' = ["group:data_eng@company.com", 'user:someone@company.com'],
11744+ 'update' = 'admin'
11745+ )
11746+ );
11747+ SELECT 1 as id
11748+ """ )
11749+ model = load_sql_based_model (expressions )
11750+ assert model .grants == {
11751+ "select" : ["user1" , "123" , "admin_role" , "user2" ],
11752+ "insert" : ["admin" ],
11753+ "roles/bigquery.dataViewer" : ["group:data_eng@company.com" , "user:someone@company.com" ],
11754+ "update" : ["admin" ],
11755+ }
11756+
11757+ model = create_sql_model (
11758+ "db.table" ,
11759+ parse_one ("SELECT 1 AS id" ),
11760+ kind = "FULL" ,
11761+ grants = {
11762+ "select" : ["user1" , "user2" ],
11763+ "insert" : ["admin" ],
11764+ "roles/bigquery.dataViewer" : "user:data_eng@company.com" ,
11765+ },
11766+ )
11767+ assert model .grants == {
11768+ "select" : ["user1" , "user2" ],
11769+ "insert" : ["admin" ],
11770+ "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11771+ }
11772+
11773+
1173511774@pytest .mark .parametrize (
1173611775 "kind" ,
1173711776 [
@@ -11909,21 +11948,6 @@ def test_grants_unresolved_macro_errors():
1190911948 load_sql_based_model (expressions3 )
1191011949
1191111950
11912- def test_grants_mixed_types_conversion ():
11913- expressions = d .parse ("""
11914- MODEL (
11915- name test.mixed_types,
11916- kind FULL,
11917- grants (
11918- 'select' = ['user1', 123, admin_role, 'user2']
11919- )
11920- );
11921- SELECT 1 as id
11922- """ )
11923- model = load_sql_based_model (expressions )
11924- assert model .grants == {"select" : ["user1" , "123" , "admin_role" , "user2" ]}
11925-
11926-
1192711951def test_grants_empty_values ():
1192811952 model1 = create_sql_model (
1192911953 "db.table" , parse_one ("SELECT 1 AS id" ), kind = "FULL" , grants = {"select" : []}
@@ -11934,24 +11958,6 @@ def test_grants_empty_values():
1193411958 assert model2 .grants is None
1193511959
1193611960
11937- def test_grants_backward_compatibility ():
11938- model = create_sql_model (
11939- "db.table" ,
11940- parse_one ("SELECT 1 AS id" ),
11941- kind = "FULL" ,
11942- grants = {
11943- "select" : ["user1" , "user2" ],
11944- "insert" : ["admin" ],
11945- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11946- },
11947- )
11948- assert model .grants == {
11949- "select" : ["user1" , "user2" ],
11950- "insert" : ["admin" ],
11951- "roles/bigquery.dataViewer" : ["user:data_eng@company.com" ],
11952- }
11953-
11954-
1195511961@pytest .mark .parametrize (
1195611962 "kind, expected" ,
1195711963 [
0 commit comments