@@ -154,6 +154,7 @@ def test_from_api_repr(target_class):
154
154
"foo" : "bar" ,
155
155
},
156
156
},
157
+ "dataGovernanceType" : "DATA_MASKING" ,
157
158
}
158
159
actual_routine = target_class .from_api_repr (resource )
159
160
@@ -192,6 +193,7 @@ def test_from_api_repr(target_class):
192
193
assert actual_routine .remote_function_options .connection == "connection_string"
193
194
assert actual_routine .remote_function_options .max_batching_rows == 50
194
195
assert actual_routine .remote_function_options .user_defined_context == {"foo" : "bar" }
196
+ assert actual_routine .data_governance_type == "DATA_MASKING"
195
197
196
198
197
199
def test_from_api_repr_tvf_function (target_class ):
@@ -294,6 +296,7 @@ def test_from_api_repr_w_minimal_resource(target_class):
294
296
assert actual_routine .description is None
295
297
assert actual_routine .determinism_level is None
296
298
assert actual_routine .remote_function_options is None
299
+ assert actual_routine .data_governance_type is None
297
300
298
301
299
302
def test_from_api_repr_w_unknown_fields (target_class ):
@@ -428,6 +431,20 @@ def test_from_api_repr_w_unknown_fields(target_class):
428
431
"determinismLevel" : bigquery .DeterminismLevel .DETERMINISM_LEVEL_UNSPECIFIED
429
432
},
430
433
),
434
+ (
435
+ {
436
+ "arguments" : [{"name" : "x" , "dataType" : {"typeKind" : "INT64" }}],
437
+ "definitionBody" : "x * 3" ,
438
+ "language" : "SQL" ,
439
+ "returnType" : {"typeKind" : "INT64" },
440
+ "routineType" : "SCALAR_FUNCTION" ,
441
+ "description" : "A routine description." ,
442
+ "determinismLevel" : bigquery .DeterminismLevel .DETERMINISM_LEVEL_UNSPECIFIED ,
443
+ "dataGovernanceType" : "DATA_MASKING" ,
444
+ },
445
+ ["data_governance_type" ],
446
+ {"dataGovernanceType" : "DATA_MASKING" },
447
+ ),
431
448
(
432
449
{},
433
450
[
@@ -554,6 +571,36 @@ def test_set_remote_function_options_w_none(object_under_test):
554
571
assert object_under_test ._properties ["remoteFunctionOptions" ] is None
555
572
556
573
574
+ def test_set_data_governance_type_w_none (object_under_test ):
575
+ object_under_test .data_governance_type = None
576
+ assert object_under_test .data_governance_type is None
577
+ assert object_under_test ._properties ["dataGovernanceType" ] is None
578
+
579
+
580
+ def test_set_data_governance_type_valid (object_under_test ):
581
+ object_under_test .data_governance_type = "DATA_MASKING"
582
+ assert object_under_test .data_governance_type == "DATA_MASKING"
583
+ assert object_under_test ._properties ["dataGovernanceType" ] == "DATA_MASKING"
584
+
585
+
586
+ def test_set_data_governance_type_wrong_type (object_under_test ):
587
+ with pytest .raises (ValueError ) as exp :
588
+ object_under_test .data_governance_type = 1
589
+ assert "invalid data_governance_type" in str (exp )
590
+ assert object_under_test .data_governance_type is None
591
+ assert object_under_test ._properties .get ("dataGovernanceType" ) is None
592
+
593
+
594
+ def test_set_data_governance_type_wrong_str (object_under_test ):
595
+ """Client does not verify the content of data_governance_type string to be
596
+ compatible with future upgrades. If the value is not supported, BigQuery
597
+ itself will report an error.
598
+ """
599
+ object_under_test .data_governance_type = "RANDOM_STRING"
600
+ assert object_under_test .data_governance_type == "RANDOM_STRING"
601
+ assert object_under_test ._properties ["dataGovernanceType" ] == "RANDOM_STRING"
602
+
603
+
557
604
def test_repr (target_class ):
558
605
model = target_class ("my-proj.my_dset.my_routine" )
559
606
actual_routine = repr (model )
0 commit comments