diff --git a/test/TestPlayBook.py b/test/TestPlayBook.py index 1b54ce39de1..5b44302af09 100644 --- a/test/TestPlayBook.py +++ b/test/TestPlayBook.py @@ -354,6 +354,34 @@ class TestPlaybook(unittest.TestCase): # restore default hash behavior C.DEFAULT_HASH_BEHAVIOUR = saved_hash_behavior + def test_playbook_ignore_errors(self): + test_callbacks = TestCallbacks() + playbook = ansible.playbook.PlayBook( + playbook=os.path.join(self.test_dir, 'playbook-ignore-errors.yml'), + host_list='test/ansible_hosts', + stats=ans_callbacks.AggregateStats(), + callbacks=test_callbacks, + runner_callbacks=test_callbacks + ) + actual = playbook.run() + + # if different, this will output to screen + print "**ACTUAL**" + print utils.jsonify(actual, format=True) + expected = { + "localhost": { + "changed": 1, + "failures": 1, + "ok": 1, + "skipped": 0, + "unreachable": 0 + } + } + print "**EXPECTED**" + print utils.jsonify(expected, format=True) + + assert utils.jsonify(expected, format=True) == utils.jsonify(actual,format=True) + def _compare_file_output(self, filename, expected_lines): actual_lines = [] with open(filename) as f: diff --git a/test/playbook-ignore-errors.yml b/test/playbook-ignore-errors.yml new file mode 100644 index 00000000000..02820f855f3 --- /dev/null +++ b/test/playbook-ignore-errors.yml @@ -0,0 +1,9 @@ +--- +- hosts: all + connection: local + gather_facts: False + + tasks: + - action: command false + ignore_errors: true + - action: command false