Skip to content

Commit c2588f9

Browse files
committed
Updates tests for clarity
1 parent 5205e45 commit c2588f9

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

google/cloud/bigquery/dataset.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ class Dataset(object):
532532
"default_rounding_mode": "defaultRoundingMode",
533533
"resource_tags": "resourceTags",
534534
"external_catalog_dataset_options": "externalCatalogDatasetOptions",
535+
"access_policy_version": "accessPolicyVersion",
535536
}
536537

537538
def __init__(self, dataset_ref) -> None:
@@ -922,6 +923,16 @@ def external_catalog_dataset_options(self, value):
922923
self._PROPERTY_TO_API_FIELD["external_catalog_dataset_options"]
923924
] = (value.to_api_repr() if value is not None else None)
924925

926+
@property
927+
def access_policy_version(self):
928+
return self._properties.get("accessPolicyVersion")
929+
930+
@access_policy_version.setter
931+
def access_policy_version(self, value):
932+
if not isinstance(value, int) and value is not None:
933+
raise ValueError("Pass an integer, or None")
934+
self._properties[self._PROPERTY_TO_API_FIELD["access_policy_version"]] = value
935+
925936
@classmethod
926937
def from_string(cls, full_dataset_id: str) -> "Dataset":
927938
"""Construct a dataset from fully-qualified dataset ID.

tests/unit/test_dataset.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,7 @@ def test_ctor_defaults(self):
796796
self.assertIsNone(dataset.friendly_name)
797797
self.assertIsNone(dataset.location)
798798
self.assertEqual(dataset.is_case_insensitive, False)
799+
self.assertIsNone(dataset.access_policy_version)
799800

800801
def test_ctor_string(self):
801802
dataset = self._make_one("some-project.some_dset")
@@ -1152,6 +1153,33 @@ def test_external_catalog_dataset_options_to_api_repr(self):
11521153
expected = api_repr["externalCatalogDatasetOptions"]
11531154
assert result == expected
11541155

1156+
def test_access_policy_version_valid_input(self):
1157+
dataset = self._make_one(self.DS_REF)
1158+
# Valid inputs for access_policy_version are currently
1159+
# ints 1, 2, 3, and None
1160+
for expected in [1, 2, 3, None]:
1161+
# set property using setter and integer
1162+
dataset.access_policy_version = expected
1163+
1164+
# check getter and _properties dict
1165+
assert (
1166+
dataset.access_policy_version == expected
1167+
), f"Expected {expected} but got {dataset.access_policy_version}"
1168+
assert dataset._properties["accessPolicyVersion"] == expected
1169+
1170+
def test_access_policy_version_invalid_input(self):
1171+
dataset = self._make_one(self.DS_REF)
1172+
# Valid inputs for access_policy_version are currently
1173+
# ints 1, 2, 3, and None
1174+
1175+
with pytest.raises(ValueError):
1176+
invalid_value = "a string"
1177+
dataset.access_policy_version = invalid_value
1178+
1179+
with pytest.raises(ValueError):
1180+
invalid_value = 42.0
1181+
dataset.access_policy_version = invalid_value
1182+
11551183

11561184
class TestDatasetListItem(unittest.TestCase):
11571185
@staticmethod

0 commit comments

Comments
 (0)