From 60dfa38717d19f739a865191d35b3c22e941ab35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Fri, 9 Aug 2019 22:21:08 +0200 Subject: [PATCH] Add error handling to !include command in yaml (#25801) * Catch errors if !include file is not found * Address review comments * Add line number to error message --- homeassistant/util/yaml/loader.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/homeassistant/util/yaml/loader.py b/homeassistant/util/yaml/loader.py index 3cbf0481673..eda3f12905d 100644 --- a/homeassistant/util/yaml/loader.py +++ b/homeassistant/util/yaml/loader.py @@ -116,7 +116,10 @@ def _include_yaml(loader: SafeLineLoader, node: yaml.nodes.Node) -> JSON_TYPE: """ fname = os.path.join(os.path.dirname(loader.name), node.value) - return _add_reference(load_yaml(fname), loader, node) + try: + return _add_reference(load_yaml(fname), loader, node) + except FileNotFoundError: + raise HomeAssistantError(f"{node.start_mark}: Unable to read file {fname}.") def _is_file_valid(name: str) -> bool: