diff --git a/homeassistant/helpers/config_validation.py b/homeassistant/helpers/config_validation.py index 5b2ad0da2ac..af42b6373ba 100644 --- a/homeassistant/helpers/config_validation.py +++ b/homeassistant/helpers/config_validation.py @@ -286,9 +286,12 @@ def entity_domain(domain: Union[str, List[str]]) -> Callable[[Any], str]: """Validate that entity belong to domain.""" ent_domain = entities_domain(domain) - def validate(value: Any) -> str: + def validate(value: str) -> str: """Test if entity domain is domain.""" - return ent_domain(value)[0] + validated = ent_domain(value) + if len(validated) != 1: + raise vol.Invalid(f"Expected exactly 1 entity, got {len(validated)}") + return validated[0] return validate diff --git a/tests/helpers/test_config_validation.py b/tests/helpers/test_config_validation.py index c829d4413f0..7693efbb926 100644 --- a/tests/helpers/test_config_validation.py +++ b/tests/helpers/test_config_validation.py @@ -179,7 +179,12 @@ def test_entity_domain(): """Test entity domain validation.""" schema = vol.Schema(cv.entity_domain("sensor")) - for value in ("invalid_entity", "cover.demo"): + for value in ( + "invalid_entity", + "cover.demo", + "cover.demo,sensor.another_entity", + "", + ): with pytest.raises(vol.MultipleInvalid): schema(value)