1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/integration/targets/snap/tasks/main.yml
Alexei Znamensky d7340945a4
snap: add tests for multiple commands (#5488)
* snap: add tests for multiple commands

* snap: add tests + become

* remove packages again for idempotency

* roll back become=true in tests
2023-04-16 13:18:34 +02:00

243 lines
7.5 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
- name: Has-snap block
when: has_snap
block:
- name: Make sure package is not installed (hello-world)
community.general.snap:
name: hello-world
state: absent
- name: Install package (hello-world) (check mode)
community.general.snap:
name: hello-world
state: present
register: install_check
check_mode: true
- name: Install package (hello-world)
community.general.snap:
name: hello-world
state: present
register: install
- name: Install package again (hello-world) (check mode)
community.general.snap:
name: hello-world
state: present
register: install_again_check
check_mode: true
- name: Install package again (hello-world)
community.general.snap:
name: hello-world
state: present
register: install_again
- name: Assert package has been installed just once (hello-world)
assert:
that:
- install is changed
- install_check is changed
- install_again is not changed
- install_again_check is not changed
- name: Check package has been installed correctly (hello-world)
command: hello-world
environment:
PATH: /snap/bin/
- name: Remove package (hello-world) (check mode)
community.general.snap:
name: hello-world
state: absent
register: remove_check
check_mode: true
- name: Remove package (hello-world)
community.general.snap:
name: hello-world
state: absent
register: remove
- name: Remove package again (hello-world) (check mode)
community.general.snap:
name: hello-world
state: absent
register: remove_again_check
check_mode: true
- name: Remove package again (hello-world)
community.general.snap:
name: hello-world
state: absent
register: remove_again
- name: Assert package has been removed just once (hello-world)
assert:
that:
- remove is changed
- remove_check is changed
- remove_again is not changed
- remove_again_check is not changed
- name: Make sure package from classic snap is not installed (nvim)
community.general.snap:
name: nvim
state: absent
- name: Install package from classic snap (nvim)
community.general.snap:
name: nvim
state: present
classic: true
register: classic_install
# testing classic idempotency
- name: Install package from classic snap again (nvim)
community.general.snap:
name: nvim
state: present
classic: true
register: classic_install_again
- name: Assert package has been installed just once (nvim)
assert:
that:
- classic_install is changed
- classic_install_again is not changed
# this is just testing if a package which has been installed
# with true classic can be removed without setting classic to true
- name: Remove package from classic snap without setting classic to true (nvim)
community.general.snap:
name: nvim
state: absent
register: classic_remove_without_true_classic
- name: Remove package from classic snap with setting classic to true (nvim)
community.general.snap:
name: nvim
state: absent
classic: true
register: classic_remove_with_true_classic
- name: Assert package has been removed without setting classic to true (nvim)
assert:
that:
- classic_remove_without_true_classic is changed
- classic_remove_with_true_classic is not changed
- name: Make sure package is not installed (uhttpd)
community.general.snap:
name: uhttpd
state: absent
- name: Install package (uhttpd)
community.general.snap:
name: uhttpd
state: present
register: install
- name: Install package (uhttpd)
community.general.snap:
name: uhttpd
state: present
options:
- "listening-port=8080"
register: install_with_option
- name: Install package again with option (uhttpd)
community.general.snap:
name: uhttpd
state: present
options:
- "listening-port=8080"
register: install_with_option_again
- name: Install package again with different options (uhttpd)
community.general.snap:
name: uhttpd
state: present
options:
- "listening-port=8088"
- "document-root-dir=/tmp"
register: install_with_option_changed
- name: Remove package (uhttpd)
community.general.snap:
name: uhttpd
state: absent
register: remove
- name: Assert package has been installed with options just once and only changed options trigger a change (uhttpd)
assert:
that:
- install is changed
- install_with_option is changed
- "install_with_option.options_changed[0] == 'uhttpd:listening-port=8080'"
- install_with_option_again is not changed
- install_with_option_changed is changed
- "'uhttpd:listening-port=8088' in install_with_option_changed.options_changed"
- "'uhttpd:document-root-dir=/tmp' in install_with_option_changed.options_changed"
- "'uhttpd:listening-port=8080' not in install_with_option_changed.options_changed"
- remove is changed
- name: Install two packages at the same time
community.general.snap:
name:
- hello-world
- uhttpd
state: present
register: install_two
- name: Install two packages at the same time (again)
community.general.snap:
name:
- hello-world
- uhttpd
state: present
register: install_two_again
- name: Remove packages (hello-world & uhttpd)
community.general.snap:
name:
- hello-world
- uhttpd
state: absent
register: install_two_remove
- name: Remove packages again (hello-world & uhttpd)
community.general.snap:
name:
- hello-world
- uhttpd
state: absent
register: install_two_remove_again
- name: Assert installation of two packages
assert:
that:
- install_two is changed
- "'hello-world' in install_two.snaps_installed"
- "'uhttpd' in install_two.snaps_installed"
- install_two.snaps_removed is not defined
- install_two_again is not changed
- install_two_again.snaps_installed is not defined
- install_two_again.snaps_removed is not defined
- install_two_remove is changed
- install_two_again.snaps_installed is not defined
- "'hello-world' in install_two_remove.snaps_removed"
- "'uhttpd' in install_two_remove.snaps_removed"
- install_two_remove_again is not changed
- install_two_remove_again.snaps_installed is not defined
- install_two_remove_again.snaps_removed is not defined