ansible/test/integration/targets/templating_lookups/template_lookups/tasks/main.yml
Sloane Hertel 30e70f4b63
Handle post_validate templating errors and fix tests (#70240)
* Handle unexpected templating errors

* Fixes #70050

Fix up tests that weren't running and add tests for graceful templating error handling
2020-06-30 09:31:58 -04:00

90 lines
2 KiB
YAML

# UNICODE
# https://github.com/ansible/ansible/issues/65297
- name: get UNICODE_VAR environment var value
shell: "echo $UNICODE_VAR"
register: unicode_var_value
- name: verify the UNICODE_VAR is defined
assert:
that:
- "unicode_var_value.stdout"
- name: use env lookup to get UNICODE_VAR value
set_fact:
test_unicode_val: "{{ lookup('env', 'UNICODE_VAR') }}"
- debug: var=unicode_var_value
- debug: var=test_unicode_val
- name: compare unicode values
assert:
that:
- "test_unicode_val == unicode_var_value.stdout"
# LOOKUP TEMPLATING
- name: use bare interpolation
debug: msg="got {{item}}"
with_items: "{{things1}}"
register: bare_var
- name: verify that list was interpolated
assert:
that:
- "bare_var.results[0].item == 1"
- "bare_var.results[1].item == 2"
- name: use list with bare strings in it
debug: msg={{item}}
with_items:
- things2
- things1
- name: use list with undefined var in it
debug: msg={{item}}
with_items: "{{things2}}"
ignore_errors: True
# BUG #10073 nested template handling
- name: set variable that clashes
set_fact:
PATH: foobar
- name: get PATH environment var value
set_fact:
known_var_value: "{{ lookup('pipe', 'echo $PATH') }}"
- name: do the lookup for env PATH
set_fact:
test_val: "{{ lookup('env', 'PATH') }}"
- debug: var=test_val
- name: compare values
assert:
that:
- "test_val != ''"
- "test_val == known_var_value"
- name: set with_dict
shell: echo "{{ item.key + '=' + item.value }}"
with_dict: "{{ mydict }}"
# BUG #34144 bad template caching
- name: generate two random passwords
set_fact:
password1: "{{ lookup('password', '/dev/null length=20') }}"
password2: "{{ lookup('password', '/dev/null length=20') }}"
# If the passwords are generated randomly, the chance that they
# coincide is neglectable (< 1e-18 assuming 120 bits of randomness
# per password).
- name: make sure passwords are not the same
assert:
that:
- password1 != password2
- include_tasks: ./errors.yml