--- - name: Setup test fixture copy: src: fixtures/ansible-xml-namespaced-beers.xml dest: /tmp/ansible-xml-namespaced-beers-xml.xml - name: Set child elements xml: path: /tmp/ansible-xml-namespaced-beers-xml.xml xpath: /bus:business/ber:beers namespaces: bus: http://test.business ber: http://test.beers set_children: - beer: 90 Minute IPA - beer: Harvest Pumpkin Ale - name: Copy state after first set_children copy: src: /tmp/ansible-xml-namespaced-beers.xml dest: /tmp/ansible-xml-namespaced-beers-1.xml - name: Set child elements again xml: path: /tmp/ansible-xml-namespaced-beers-xml.xml xpath: /bus:business/ber:beers namespaces: bus: http://test.business ber: http://test.beers set_children: - beer: 90 Minute IPA - beer: Harvest Pumpkin Ale register: set_children_again - name: Copy state after second set_children copy: src: /tmp/ansible-xml-namespaced-beers.xml dest: /tmp/ansible-xml-namespaced-beers-2.xml - name: Compare to expected result copy: src: /tmp/ansible-xml-namespaced-beers-1.xml dest: /tmp/ansible-xml-namespaced-beers-2.xml check_mode: yes diff: yes register: comparison #command: diff /tmp/ansible-xml-namespaced-beers-1.xml /tmp/ansible-xml-namespaced-beers-2.xml - name: Test expected result assert: that: - set_children_again.changed == false # idempotency - set_namespaced_attribute_value.changed == true - comparison.changed == false # identical