diff --git a/lib/ansible/runner/action_plugins/assert.py b/lib/ansible/runner/action_plugins/assert.py index 8091326046..210dbc0af1 100644 --- a/lib/ansible/runner/action_plugins/assert.py +++ b/lib/ansible/runner/action_plugins/assert.py @@ -46,11 +46,12 @@ class ActionModule(object): if not 'that' in args: raise errors.AnsibleError('conditional required in "that" string') - result = utils.check_conditional(args['that'], self.runner.basedir, inject, fail_on_undefined=True) + if not isinstance(args['that'], list): + args['that'] = [ args['that'] ] - if not result: - result = dict(failed=True, assertion=args['that'], evaluated_to=result) - else: - result = dict(msg='ok', assertion=args['that'], evaluated_to=result) + for that in args['that']: + result = utils.check_conditional(args['that'], self.runner.basedir, inject, fail_on_undefined=True) + if not result: + return ReturnData(conn=conn, result=dict(failed=True, assertion=that, evaluated_to=result)) - return ReturnData(conn=conn, result=result) + return ReturnData(conn=conn, result=dict(msg='all assertions passed')) diff --git a/tests_new/integration/roles/test_copy/tasks/main.yml b/tests_new/integration/roles/test_copy/tasks/main.yml index d3dbaeadb0..1a8192dec8 100644 --- a/tests_new/integration/roles/test_copy/tasks/main.yml +++ b/tests_new/integration/roles/test_copy/tasks/main.yml @@ -22,16 +22,19 @@ copy: src=foo.txt dest={{output_file}} register: copy_result -- assert: { that: "'changed' in copy_result" } -- assert: { that: "'dest' in copy_result" } -- assert: { that: "'group' in copy_result" } -- assert: { that: "'gid' in copy_result" } -- assert: { that: "'md5sum' in copy_result" } -- assert: { that: "'owner' in copy_result" } -- assert: { that: "'size' in copy_result" } -- assert: { that: "'src' in copy_result" } -- assert: { that: "'state' in copy_result" } -- assert: { that: "'uid' in copy_result" } +- name: assert basic copy worked + assert: + that: + - "'changed' in copy_result" + - "'dest' in copy_result" + - "'group' in copy_result" + - "'gid' in copy_result" + - "'md5sum' in copy_result" + - "'owner' in copy_result" + - "'size' in copy_result" + - "'src' in copy_result" + - "'state' in copy_result" + - "'uid' in copy_result" - name: verify that the file was marked as changed