[substitutions] Fix #7189 (#9469)

This commit is contained in:
Javier Peletier 2025-07-13 23:58:52 +02:00 committed by GitHub
parent 9451781915
commit 9e002cd7a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 11 additions and 2 deletions

View File

@ -146,8 +146,11 @@ def _substitute_item(substitutions, item, path, jinja, ignore_missing):
if sub is not None:
item[k] = sub
for old, new in replace_keys:
item[new] = merge_config(item.get(old), item.get(new))
del item[old]
if str(new) == str(old):
item[new] = item[old]
else:
item[new] = merge_config(item.get(old), item.get(new))
del item[old]
elif isinstance(item, str):
sub = _expand_substitutions(substitutions, item, path, jinja, ignore_missing)
if isinstance(sub, JinjaStr) or sub != item:

View File

@ -17,3 +17,5 @@ test_list:
- ${undefined_var}
- $undefined_var
- ${ undefined_var }
- key1: 1
key2: 2

View File

@ -19,3 +19,5 @@ test_list:
- ${undefined_var}
- $undefined_var
- ${ undefined_var }
- key${var1}: 1
key${var2}: 2

View File

@ -6,6 +6,7 @@ package_result:
root file
- Double substitution also works; the value of var7 is 79, where A is a package
var
- key79: Key should substitute to key79
local_results:
- The value of B is 5
- 'You will see, however, that

View File

@ -1,3 +1,4 @@
package_result:
- The value of A*B is ${A * B}, where A is a package var and B is a substitution in the root file
- Double substitution also works; the value of var7 is ${var$A}, where A is a package var
- key${var7}: Key should substitute to key79