summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/lookup_dict/tasks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/lookup_dict/tasks/main.yml')
-rw-r--r--test/integration/targets/lookup_dict/tasks/main.yml56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/integration/targets/lookup_dict/tasks/main.yml b/test/integration/targets/lookup_dict/tasks/main.yml
new file mode 100644
index 0000000..b132413
--- /dev/null
+++ b/test/integration/targets/lookup_dict/tasks/main.yml
@@ -0,0 +1,56 @@
+- name: Define users dict
+ set_fact:
+ users:
+ alice:
+ name: Alice
+ age: 21
+ bob:
+ name: Bob
+ age: 22
+
+- name: Convert users dict to list
+ set_fact:
+ user_list: "{{ lookup('dict', users) | sort(attribute='key') }}"
+
+- name: Verify results
+ assert:
+ that:
+ - user_list | length == 2
+ - user_list[0].key == 'alice'
+ - user_list[0].value | length == 2
+ - user_list[0].value.name == 'Alice'
+ - user_list[0].value.age == 21
+ - user_list[1].key == 'bob'
+ - user_list[1].value | length == 2
+ - user_list[1].value.name == 'Bob'
+ - user_list[1].value.age == 22
+
+- name: Convert a non-dict (failure expected)
+ set_fact:
+ bad_fact: "{{ bbbbad }}"
+ vars:
+ bbbbad: "{{ lookup('dict', 1) }}"
+ register: result
+ ignore_errors: yes
+
+- name: Verify conversion failed
+ assert:
+ that:
+ - result is failed
+
+- name: Define simple dict
+ set_fact:
+ simple:
+ hello: World
+
+- name: Convert using with_dict to cause terms to not be a list
+ set_fact:
+ hello: "{{ item }}"
+ with_dict: "{{ simple }}"
+
+- name: Verify conversion
+ assert:
+ that:
+ - hello | length == 2
+ - hello.key == 'hello'
+ - hello.value == 'World'