- vars:
    inv: '{{limited.stdout|from_yaml}}'
    output_dir: '{{ lookup("env", "OUTPUT_DIR", default=undef()) }}'
  delegate_to: localhost
  block:
  - name: check baseline
    shell: ansible-inventory -i '{{ role_path }}/files/valid_sample.yml' --list --yaml > '{{ output_dir }}/yaml_inv.yml'

  - name: run validation playbook
    command: ansible-playbook -i '{{ output_dir }}/yaml_inv.yml' post_inventory.yml

  - name: check that limit removes host
    command: ansible-inventory -i '{{ role_path }}/files/valid_sample.yml'  --limit '!something' --list --yaml
    register: limited

  - name: ensure empty host list
    assert:
      that:
        - not inv

  - name: check dupes
    command: ansible-inventory -i '{{ role_path }}/files/complex.ini' --list --yaml
    register: limited

  - name: ensure host only appears on directly assigned
    assert:
      that:
        - "'hosts' not in inv['all']['children']['parent_1']"
        - "'hosts' not in inv['all']['children']['parent_2']"
        - "'hosts' in inv['all']['children']['parent_3']"
        - "'test1' in inv['all']['children']['parent_1']['children']['test_group1']['hosts']"
        - "'hosts' not in inv['all']['children']['parent_2']['children']['test_group1']"
