ternary: evaluate values lazily (#85752)

Fixes #85743
This commit is contained in:
Martin Krizek
2025-08-28 09:11:09 +02:00
committed by GitHub
parent b3ef4f7671
commit 6976e13075
3 changed files with 10 additions and 0 deletions
@@ -0,0 +1,2 @@
bugfixes:
- "``ternary`` filter - evaluate values lazily (https://github.com/ansible/ansible/issues/85743)"
+1
View File
@@ -220,6 +220,7 @@ def regex_search(value, regex, *args, **kwargs):
return items
@accept_args_markers
def ternary(value, true_val, false_val, none_val=None):
""" value ? true_val : false_val """
if value is None and none_val is not None:
@@ -430,6 +430,13 @@
- '123|ternary("seven", "eight") == "seven"'
- '"haha"|ternary("seven", "eight") == "seven"'
- name: Verify ternary does not evaluate unused values
assert:
that:
- (false | ternary(undefined_variable, 'seven')) == (false | ternary(d.no_such_key, 'seven'))
vars:
d: {}
- name: Verify regex_escape raises on posix_extended (failure expected)
set_fact:
foo: '{{"]]^"|regex_escape(re_type="posix_extended")}}'