ansible/test/integration/targets/lookup_varnames/tasks/main.yml
Rick Elrod d5480572c8
varnames: add tests, fix exception grammar (#70573)
Change:
- Add integration tests for various cases
- Fix wrong use of "its" in an exception thrown in varnames when it
  throws an AnsibleError, given a term of the wrong type.

Test Plan:
- new tests, CI

Tickets:
- Fixes #70546

Signed-off-by: Rick Elrod <rick@elrod.me>
2020-07-10 21:04:02 -05:00

38 lines
1.3 KiB
YAML

# Example copied from docs
- name: Set some variables
set_fact:
qz_1: hello
qz_2: world
qa_1: "I won't show"
qz_: "I won't show either"
- name: Try various regexes and make sure they work
assert:
that:
- lookup('varnames', '^qz_.+', wantlist=True) == ['qz_1', 'qz_2']
- lookup('varnames', '^qz_.+', '^qa.*', wantlist=True) == ['qz_1', 'qz_2', 'qa_1']
- "'ansible_python_interpreter' in lookup('varnames', '^ansible_.*', wantlist=True)"
- lookup('varnames', '^doesnotexist.*', wantlist=True) == []
- lookup('varnames', '^doesnotexist.*', '.*python_inter.*', wantlist=True) == ['ansible_python_interpreter']
- lookup('varnames', '^q.*_\d', wantlist=True) == ['qz_1', 'qz_2', 'qa_1']
- lookup('varnames', '^q.*_\d') == 'qz_1,qz_2,qa_1'
- name: Make sure it fails successfully
set_fact:
fail1: "{{ lookup('varnames', True, wantlist=True) }}"
register: fail1res
ignore_errors: yes
- name: Make sure it fails successfully
set_fact:
fail2: "{{ lookup('varnames', '*', wantlist=True) }}"
register: fail2res
ignore_errors: yes
- assert:
that:
- fail1res is failed
- "'Invalid setting identifier' in fail1res.msg"
- fail2res is failed
- "'Unable to use' in fail2res.msg"
- "'nothing to repeat' in fail2res.msg"