- name: only test if have toml in python command: "{{ansible_playbook_python}} -c 'import toml'" ignore_errors: true delegate_to: localhost register: has_toml - block: - name: check baseline command: ansible-inventory -i '{{ role_path }}/files/valid_sample.yml' --list --toml register: limited - name: ensure non empty host list assert: that: - "'something' in inv['somegroup']['hosts']" - name: check that limit removes host command: ansible-inventory -i '{{ role_path }}/files/valid_sample.yml' --limit '!something' --list --toml register: limited ignore_errors: true - name: ensure empty host list assert: that: - limited is failed - name: check dupes command: ansible-inventory -i '{{ role_path }}/files/complex.ini' --list --toml register: limited - debug: var=inv - name: ensure host only appears on directly assigned assert: that: - "'hosts' not in inv['parent_1']" - "'hosts' not in inv['parent_2']" - "'hosts' in inv['parent_3']" - "'test1' in inv['test_group1']['hosts']" vars: inv: '{{limited.stdout|from_toml}}' when: has_toml is success delegate_to: localhost