--- - name: Setup test fixture command: cp {{ role_path }}/fixtures/ansible-xml-beers.xml /tmp/ansible-xml-beers.xml - name: Set child elements xml: path: /tmp/ansible-xml-beers.xml xpath: /business/beers set_children: - beer: name: "90 Minute IPA" alcohol: "0.5" _: - Water: quantity: 200g liter: "0.2" - Starch: quantity: 10g - Hops: quantity: 50g - Yeast: quantity: 20g - beer: name: "Harvest Pumpkin Ale" alcohol: "0.3" _: - Water: quantity: 200g liter: "0.2" - Hops: quantity: 25g - Yeast: quantity: 20g - name: Test expected result command: diff -u {{ role_path }}/results/test-set-children-elements-level.xml /tmp/ansible-xml-beers.xml - name: Set child elements xml: path: /tmp/ansible-xml-beers.xml xpath: /business/beers set_children: - beer: name: "90 Minute IPA" alcohol: "0.5" _: - Water: quantity: 200g liter: "0.2" - Starch: quantity: 10g - Hops: quantity: 50g - Yeast: quantity: 20g - beer: name: "Harvest Pumpkin Ale" alcohol: "0.3" _: - Water: quantity: 200g liter: "0.2" - Hops: quantity: 25g - Yeast: quantity: 20g register: set_children_again - fail: msg: "Setting children is not idempotent!" when: set_children_again.changed