#################################################################### # WARNING: These are designed specifically for Ansible tests # # and should not be used as examples of how to write Ansible roles # #################################################################### # Test code for the homebrew_cask module. # Copyright: (c) 2022, Joseph Torcasso # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) --- - name: Find brew binary command: which brew register: brew_which when: ansible_distribution in ['MacOSX'] - name: Get owner of brew binary stat: path: "{{ brew_which.stdout }}" register: brew_stat when: ansible_distribution in ['MacOSX'] - block: - name: Install cask homebrew_cask: name: "{{ cask }}" state: present become: yes become_user: "{{ brew_stat.stat.pw_name }}" register: cask_install_result - assert: that: - cask_install_result is changed - "'Cask installed' in cask_install_result.msg" - name: Install cask (idempotence) homebrew_cask: name: "{{ cask }}" state: present become: yes become_user: "{{ brew_stat.stat.pw_name }}" register: cask_install_result - assert: that: - cask_install_result is not changed - "'Cask installed' not in cask_install_result.msg" - "'Cask already installed' in cask_install_result.msg" - name: Install cask with force install option homebrew_cask: name: "{{ cask }}" state: present install_options: force become: yes become_user: "{{ brew_stat.stat.pw_name }}" register: cask_install_result - assert: that: - cask_install_result is changed - "'Cask installed' in cask_install_result.msg" always: - name: Delete cask homebrew_cask: name: "{{ cask }}" state: absent install_options: force become: yes become_user: "{{ brew_stat.stat.pw_name }}" ignore_errors: yes