Drop frontend metadata from entity service schemas (#69894)
This commit is contained in:
parent
d1f4b7a3d9
commit
a9742cc445
2 changed files with 28 additions and 0 deletions
|
@ -1021,6 +1021,8 @@ def make_entity_service_schema(
|
|||
vol.All(
|
||||
vol.Schema(
|
||||
{
|
||||
# The frontend stores data here. Don't use in core.
|
||||
vol.Remove("metadata"): dict,
|
||||
**schema,
|
||||
**ENTITY_SERVICE_FIELDS,
|
||||
},
|
||||
|
|
|
@ -448,6 +448,32 @@ def test_entity_service_schema():
|
|||
for value in options:
|
||||
schema(value)
|
||||
|
||||
options = (
|
||||
{
|
||||
"required": 1,
|
||||
"entity_id": "light.kitchen",
|
||||
"metadata": {"some": "frontend_stuff"},
|
||||
},
|
||||
)
|
||||
for value in options:
|
||||
validated = schema(value)
|
||||
assert "metadata" not in validated
|
||||
|
||||
|
||||
def test_entity_service_schema_with_metadata():
|
||||
"""Test make_entity_service_schema with overridden metadata key."""
|
||||
schema = cv.make_entity_service_schema({vol.Required("metadata"): cv.positive_int})
|
||||
|
||||
options = ({"metadata": {"some": "frontend_stuff"}, "entity_id": "light.kitchen"},)
|
||||
for value in options:
|
||||
with pytest.raises(vol.MultipleInvalid):
|
||||
cv.SERVICE_SCHEMA(value)
|
||||
|
||||
options = ({"metadata": 1, "entity_id": "light.kitchen"},)
|
||||
for value in options:
|
||||
validated = schema(value)
|
||||
assert "metadata" in validated
|
||||
|
||||
|
||||
def test_slug():
|
||||
"""Test slug validation."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue