diff --git a/homeassistant/helpers/entity_platform.py b/homeassistant/helpers/entity_platform.py index b8fef8deca24..0560cf84fb38 100644 --- a/homeassistant/helpers/entity_platform.py +++ b/homeassistant/helpers/entity_platform.py @@ -83,6 +83,16 @@ class EntityPlatform: platform = self.platform hass = self.hass + if not hasattr(platform, "async_setup_platform") and not hasattr( + platform, "setup_platform" + ): + self.logger.error( + "The %s platform for the %s integration does not support platform setup. Please remove it from your config.", + self.platform_name, + self.domain, + ) + return + @callback def async_create_setup_task(): """Get task to set up platform.""" diff --git a/tests/helpers/test_entity_platform.py b/tests/helpers/test_entity_platform.py index 97534d7dff76..7797bf5057b8 100644 --- a/tests/helpers/test_entity_platform.py +++ b/tests/helpers/test_entity_platform.py @@ -834,3 +834,17 @@ async def test_override_restored_entities(hass): state = hass.states.get("test_domain.world") assert state.state == "on" + + +async def test_platform_with_no_setup(hass, caplog): + """Test setting up a platform that doesnt' support setup.""" + entity_platform = MockEntityPlatform( + hass, domain="mock-integration", platform_name="mock-platform", platform=None + ) + + await entity_platform.async_setup(None) + + assert ( + "The mock-platform platform for the mock-integration integration does not support platform setup." + in caplog.text + )