diff --git a/homeassistant/scripts/check_config.py b/homeassistant/scripts/check_config.py index 1b8c6719395..2eb895603dd 100644 --- a/homeassistant/scripts/check_config.py +++ b/homeassistant/scripts/check_config.py @@ -329,8 +329,16 @@ def check_ha_config_file(hass): # Process and validate config for domain in components: - component = loader.get_component(hass, domain) - if not component: + try: + integration = hass.loop.run_until_complete( + loader.async_get_integration(hass, domain)) + except loader.IntegrationNotFound: + result.add_error("Integration not found: {}".format(domain)) + continue + + try: + component = integration.get_component() + except ImportError: result.add_error("Component not found: {}".format(domain)) continue @@ -368,9 +376,18 @@ def check_ha_config_file(hass): platforms.append(p_validated) continue - platform = loader.get_platform(hass, domain, p_name) + try: + p_integration = hass.loop.run_until_complete( + loader.async_get_integration(hass, p_name)) + except loader.IntegrationNotFound: + result.add_error( + "Integration {} not found when trying to verify its {} " + "platform.".format(p_name, domain)) + continue - if platform is None: + try: + platform = p_integration.get_platform(domain) + except ImportError: result.add_error( "Platform not found: {}.{}".format(domain, p_name)) continue diff --git a/tests/scripts/test_check_config.py b/tests/scripts/test_check_config.py index 217f26e71f7..dd0289d44be 100644 --- a/tests/scripts/test_check_config.py +++ b/tests/scripts/test_check_config.py @@ -90,7 +90,7 @@ class TestCheckConfig(unittest.TestCase): res = check_config.check(get_test_config_dir()) assert res['components'].keys() == {'homeassistant'} assert res['except'] == { - check_config.ERROR_STR: ['Component not found: beer']} + check_config.ERROR_STR: ['Integration not found: beer']} assert res['secret_cache'] == {} assert res['secrets'] == {} assert len(res['yaml_files']) == 1 @@ -104,7 +104,8 @@ class TestCheckConfig(unittest.TestCase): assert res['components']['light'] == [] assert res['except'] == { check_config.ERROR_STR: [ - 'Platform not found: light.beer', + 'Integration beer not found when trying to verify its ' + 'light platform.', ]} assert res['secret_cache'] == {} assert res['secrets'] == {}