Skip to content

Commit 3740564

Browse files
authored
Add permissions to tagging schema (#1003)
1 parent c45eec2 commit 3740564

3 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/rpdk/core/contract/resource_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,9 @@ def metadata_contains_tag_property(self):
837837
except KeyError:
838838
return False
839839

840+
def get_tagging_permissions(self):
841+
return self._schema.get("tagging", {}).get("permissions", [])
842+
840843
def validate_model_contain_tags(self, inputs):
841844
assertion_error_message = "Contract test inputs does not contain tags property."
842845
try:

src/rpdk/core/data/schema/provider.definition.schema.v1.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,13 @@
145145
"description": "A reference to the Tags property in the schema.",
146146
"$ref": "http://json-schema.org/draft-07/schema#/properties/$ref",
147147
"default": "/properties/Tags"
148+
},
149+
"permissions": {
150+
"type": "array",
151+
"items": {
152+
"type": "string"
153+
},
154+
"additionalItems": false
148155
}
149156
},
150157
"required": [

tests/contract/test_resource_client.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,6 +1538,18 @@ def test_metadata_contains_tag_property(resource_client):
15381538
assert resource_client.metadata_contains_tag_property()
15391539

15401540

1541+
@pytest.mark.parametrize(
1542+
"schema,result",
1543+
[
1544+
({"tagging": {"permissions": ["test:permission"]}}, ["test:permission"]),
1545+
({}, []),
1546+
],
1547+
)
1548+
def test_get_tagging_permission(resource_client, schema, result):
1549+
resource_client._update_schema(schema)
1550+
assert resource_client.get_tagging_permissions() == result
1551+
1552+
15411553
def test_validate_model_contain_tags(resource_client):
15421554
schema = {"tagging": {"taggable": True, "tagProperty": "/properties/Tags"}}
15431555
resource_client._update_schema(schema)

0 commit comments

Comments
 (0)