Emit proper error for `x in y` when y is undefined (#70990) (#71012)

Fixes #70984

(cherry picked from commit bf7276a4e8)
pull/70851/head
Martin Krizek 4 years ago committed by GitHub
parent 0ecb2abf43
commit 4f732c9ce9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,2 @@
bugfixes:
- templating - fix error message for ``x in y`` when y is undefined (https://github.com/ansible/ansible/issues/70984)

@ -244,6 +244,10 @@ class AnsibleUndefined(StrictUndefined):
def __repr__(self):
return 'AnsibleUndefined'
def __contains__(self, item):
# Return original Undefined object to preserve the first failure context
return self
class AnsibleContext(Context):
'''

@ -706,5 +706,14 @@
- 'diff_result.stdout == ""'
- "diff_result.rc == 0"
- debug:
msg: "{{ 'x' in y }}"
ignore_errors: yes
register: error
- name: check that proper error message is emitted when in operator is used
assert:
that: "\"'y' is undefined\" in error.msg"
# aliases file requires root for template tests so this should be safe
- include: backup_test.yml

Loading…
Cancel
Save