# 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"
