summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/delegate_to/test_delegate_to_loop_randomness.yml
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/delegate_to/test_delegate_to_loop_randomness.yml')
-rw-r--r--test/integration/targets/delegate_to/test_delegate_to_loop_randomness.yml73
1 files changed, 73 insertions, 0 deletions
diff --git a/test/integration/targets/delegate_to/test_delegate_to_loop_randomness.yml b/test/integration/targets/delegate_to/test_delegate_to_loop_randomness.yml
new file mode 100644
index 0000000..81033a1
--- /dev/null
+++ b/test/integration/targets/delegate_to/test_delegate_to_loop_randomness.yml
@@ -0,0 +1,73 @@
+---
+- name: Integration tests for #28231
+ hosts: localhost
+ gather_facts: false
+ tasks:
+ - name: Add some test hosts
+ add_host:
+ name: "foo{{item}}"
+ groups: foo
+ ansible_connection: local
+ ansible_python_interpreter: "{{ ansible_playbook_python }}"
+ loop: "{{ range(10)|list }}"
+
+ # We expect all of the next 3 runs to succeeed
+ # this is done multiple times to increase randomness
+ - assert:
+ that:
+ - item in ansible_delegated_vars
+ delegate_to: "{{ item }}"
+ loop:
+ - "{{ groups.foo|random }}"
+ ignore_errors: true
+ register: result1
+
+ - assert:
+ that:
+ - item in ansible_delegated_vars
+ delegate_to: "{{ item }}"
+ loop:
+ - "{{ groups.foo|random }}"
+ ignore_errors: true
+ register: result2
+
+ - assert:
+ that:
+ - item in ansible_delegated_vars
+ delegate_to: "{{ item }}"
+ loop:
+ - "{{ groups.foo|random }}"
+ ignore_errors: true
+ register: result3
+
+ - debug:
+ var: result1
+
+ - debug:
+ var: result2
+
+ - debug:
+ var: result3
+
+ - name: Ensure all of the 3 asserts were successful
+ assert:
+ that:
+ - results is all
+ vars:
+ results:
+ - "{{ (result1.results|first) is successful }}"
+ - "{{ (result2.results|first) is successful }}"
+ - "{{ (result3.results|first) is successful }}"
+
+ - name: Set delegate
+ set_fact:
+ _delegate: '{{ groups.foo[0] }}'
+
+ - command: "true"
+ delegate_to: "{{ _delegate }}"
+ register: result
+
+ - assert:
+ that:
+ - result.stdout is defined
+ - result.results is undefined