1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-01 19:02:18 +01:00

Add variable substitutions for !include (#3510)

This commit is contained in:
jimtng
2022-05-31 14:45:18 +10:00
committed by GitHub
parent 708672ec7e
commit 5aa42e5e66
7 changed files with 95 additions and 17 deletions

View File

@@ -0,0 +1,2 @@
---
ssid: ${name}

View File

@@ -0,0 +1,2 @@
---
- ${var1}

View File

@@ -0,0 +1 @@
${var1}

View File

@@ -0,0 +1,17 @@
---
substitutions:
name: original
wifi: !include
file: includes/included.yaml
vars:
name: my_custom_ssid
esphome:
# should be substituted as 'original', not overwritten by vars in the !include above
name: ${name}
name_add_mac_suffix: true
platform: esp8266
board: !include { file: includes/scalar.yaml, vars: { var1: nodemcu } }
libraries: !include { file: includes/list.yaml, vars: { var1: Wire } }

View File

@@ -0,0 +1,13 @@
from esphome import yaml_util
from esphome.components import substitutions
def test_include_with_vars(fixture_path):
yaml_file = fixture_path / "yaml_util" / "includetest.yaml"
actual = yaml_util.load_yaml(yaml_file)
substitutions.do_substitution_pass(actual, None)
assert actual["esphome"]["name"] == "original"
assert actual["esphome"]["libraries"][0] == "Wire"
assert actual["esphome"]["board"] == "nodemcu"
assert actual["wifi"]["ssid"] == "my_custom_ssid"