community.general/tests/integration/targets/pipx/tasks/testcase-8809-installall.yml
Alexei Znamensky 2429e228a4
pipx/pipx_info: multiple fixes (#9044)
* pipx_info: factored process_list out

* pipx_info: no need to pass param to _list

* pipx_info: minor adjustment

* pipx mod utils: make_process_list parameters

* fix test for state=install_all

* fix assertions

* pipx tests: fix detection of pipx 1.7.0

* pipx: use make_process_output

* add testcase

* pipx: remove import json

* pinned in pipx list is not always there

* Update plugins/modules/pipx_info.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* remove ensurepath and --user from pipx install

* add changelog frag

* Update changelogs/fragments/9044-pipx-fixes.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update changelogs/fragments/9044-pipx-fixes.yml

* Update changelogs/fragments/9044-pipx-fixes.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update changelogs/fragments/9044-pipx-fixes.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2024-11-02 17:50:24 +01:00

89 lines
2.3 KiB
YAML

---
# 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: Set up environment
environment:
PATH: /usr/local/bin:{{ ansible_env.PATH }}
block:
- name: Uninstall pycowsay and black
community.general.pipx:
state: uninstall
name: "{{ item }}"
loop:
- black
- pycowsay
- name: Uninstall pycowsay and black (again)
community.general.pipx:
state: uninstall
name: "{{ item }}"
loop:
- black
- pycowsay
register: uninstall_all_1
- name: Install pycowsay and black
community.general.pipx:
state: install
name: "{{ item }}"
loop:
- black
- pycowsay
register: install_all_1
- name: Generate JSON spec
community.general.pipx_info:
include_raw: true
register: pipx_list
- name: Copy content
ansible.builtin.copy:
content: "{{ pipx_list.raw_output }}"
dest: "{{ remote_tmp_dir }}/spec.json"
mode: "0644"
- name: Uninstall pycowsay and black (again)
community.general.pipx:
state: uninstall
name: "{{ item }}"
loop:
- black
- pycowsay
register: uninstall_all_2
- name: Use install-all
community.general.pipx:
state: install_all
spec_metadata: "{{ remote_tmp_dir }}/spec.json"
register: install_all
- name: Run pycowsay (should succeed)
ansible.builtin.command: pycowsay Moooooooo!
changed_when: false
register: what_the_cow_said
- name: Which cow?
ansible.builtin.command: which pycowsay
changed_when: false
register: which_cow
- name: Uninstall pycowsay and black (again)
community.general.pipx:
state: uninstall
name: "{{ item }}"
loop:
- black
- pycowsay
register: uninstall_all_3
- name: Assert uninstall-all
ansible.builtin.assert:
that:
- uninstall_all_1 is not changed
- install_all_1 is changed
- uninstall_all_2 is changed
- install_all is changed
- "'Moooooooo!' in what_the_cow_said.stdout"
- uninstall_all_3 is changed