Add integration tests for the mas module (#67442)

* Add integration tests for the mas module

See https://github.com/ansible/ansible/pull/19768.

* Implement review feedback
This commit is contained in:
Lukas Bestle 2020-02-15 22:57:58 +01:00 committed by GitHub
parent a43f76cbf9
commit 31a6a37329
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 153 additions and 0 deletions

View file

@ -0,0 +1,2 @@
needs/root
unsupported

View file

@ -0,0 +1,151 @@
# Test code for the mas module.
# Copyright: (c) 2020, Lukas Bestle <project-ansible@lukasbestle.com>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
---
# Test preparation
- name: Uninstall Rested to ensure consistent starting point
mas:
id: 421879749
state: absent
become: yes
- name: Determine whether the app is installed
stat:
path: /Applications/Rested.app
register: install_status
- name: Ensure the app is uninstalled
assert:
that:
- install_status.stat.exists == false
- name: Wait until the OS-internal cache was updated
pause:
seconds: 5
# Installation
- name: Check if Rested needs to be installed
mas:
id: 421879749
state: present
register: install_check
check_mode: yes
- name: Ensure that the status would have changed
assert:
that:
- install_check is changed
- install_check.msg == "Installed 1 app(s)"
- name: Determine whether the app is installed
stat:
path: /Applications/Rested.app
register: install_status
- name: Ensure the app is not yet installed
assert:
that:
- install_status.stat.exists == false
- name: Install Rested
mas:
id: 421879749
state: present
register: install
- name: Ensure that the status changed
assert:
that:
- install is changed
- install.msg == "Installed 1 app(s)"
- name: Determine whether the app is installed
stat:
path: /Applications/Rested.app
register: install_status
- name: Ensure the app is installed
assert:
that:
- install_status.stat.exists == true
- name: Wait until the OS-internal cache was updated
pause:
seconds: 5
- name: Install Rested again
mas:
id: 421879749
state: present
register: install_again
- name: Ensure that the status is unchanged (already installed)
assert:
that:
- install_again is not changed
- "'msg' not in install_again"
# Uninstallation
- name: Check if Rested needs to be uninstalled
mas:
id: 421879749
state: absent
register: uninstall_check
become: yes
check_mode: yes
- name: Ensure that the status would have changed
assert:
that:
- uninstall_check is changed
- uninstall_check.msg == "Uninstalled 1 app(s)"
- name: Determine whether the app is installed
stat:
path: /Applications/Rested.app
register: install_status
- name: Ensure the app is not yet uninstalled
assert:
that:
- install_status.stat.exists == true
- name: Unistall Rested
mas:
id: 421879749
state: absent
register: uninstall
become: yes
- name: Ensure that the status changed
assert:
that:
- uninstall is changed
- uninstall.msg == "Uninstalled 1 app(s)"
- name: Determine whether the app is installed
stat:
path: /Applications/Rested.app
register: uninstall_status
- name: Ensure the app is uninstalled
assert:
that:
- uninstall_status.stat.exists == false
- name: Wait until the OS-internal cache was updated
pause:
seconds: 5
- name: Uninstall Rested again
mas:
id: 421879749
state: absent
register: uninstall_again
become: yes
- name: Ensure that the status is unchanged (already uninstalled)
assert:
that:
- uninstall_again is not changed
- "'msg' not in uninstall_again"