mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-06 10:40:32 -07:00
Fix/improve tests (#9859)
* Fix tests.
* Improve callback tests.
(cherry picked from commit eff25c8a6e
)
67 lines
2.1 KiB
YAML
67 lines
2.1 KiB
YAML
---
|
|
####################################################################
|
|
# WARNING: These are designed specifically for Ansible tests #
|
|
# and should not be used as examples of how to write Ansible roles #
|
|
####################################################################
|
|
|
|
# Copyright (c) Ansible Project
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
- block:
|
|
- name: Create temporary playbook files
|
|
tempfile:
|
|
state: file
|
|
suffix: temp
|
|
loop: "{{ tests }}"
|
|
loop_control:
|
|
loop_var: test
|
|
label: "{{ test.name }}"
|
|
register: temporary_playbook_files
|
|
|
|
- name: Set temporary playbook file content
|
|
copy:
|
|
content: "{{ test.playbook }}"
|
|
dest: "{{ temporary_playbook_files.results[test_idx].path }}"
|
|
loop: "{{ tests }}"
|
|
loop_control:
|
|
loop_var: test
|
|
index_var: test_idx
|
|
label: "{{ test.name }}"
|
|
|
|
- name: Collect outputs
|
|
command: "ansible-playbook -i {{ inventory }} {{ playbook }}"
|
|
environment: "{{ test.environment }}"
|
|
loop: "{{ tests }}"
|
|
loop_control:
|
|
loop_var: test
|
|
label: "{{ test.name }}"
|
|
register: outputs
|
|
changed_when: false
|
|
vars:
|
|
inventory: "{{ role_path }}/inventory.yml"
|
|
playbook: "
|
|
{%- for result in temporary_playbook_files.results -%}
|
|
{%- if result.test.name == test.name -%}
|
|
{{- result.path -}}
|
|
{%- endif -%}
|
|
{%- endfor -%}"
|
|
|
|
- name: Assert test output equals expected output
|
|
assert:
|
|
that: result.output.differences | length == 0
|
|
loop: "{{ outputs.results | callback_results_extractor }}"
|
|
loop_control:
|
|
loop_var: result
|
|
label: "{{ result.name }}"
|
|
register: assertions
|
|
|
|
always:
|
|
- name: Remove temporary playbooks
|
|
file:
|
|
path: "{{ temporary_file.path }}"
|
|
state: absent
|
|
loop: "{{ temporary_playbook_files.results }}"
|
|
loop_control:
|
|
loop_var: temporary_file
|
|
label: "{{ temporary_file.test.name }}: {{ temporary_file.path }}"
|