# 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

# 77788 - KeyError when wantlist=False with dict returned
- name: Test that dicts can be parsed with wantlist false
  set_fact:
    dict_wantlist_true: "{{ lookup('77788', wantlist=True) }}"
    dict_wantlist_false: "{{ lookup('77788', wantlist=False) }}"

- assert:
    that:
      - dict_wantlist_true is mapping
      - dict_wantlist_false is string

- include_tasks: ./errors.yml
