Skip to content

Commit

Permalink
pipx: use global in state=latest (#9623)
Browse files Browse the repository at this point in the history
* pipx: use global in state=latest

* add changelog frag
  • Loading branch information
russoz authored Jan 27, 2025
1 parent 96f465d commit 03dfed4
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 2 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/9623-pipx-global-latest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- pipx - honor option ``global`` when ``state=latest`` (https://github.com/ansible-collections/community.general/pull/9623).
4 changes: 2 additions & 2 deletions plugins/modules/pipx.py
Original file line number Diff line number Diff line change
Expand Up @@ -382,12 +382,12 @@ def state_upgrade_shared(self):
def state_latest(self):
if not self.vars.application or self.vars.force:
self.changed = True
args_order = 'state index_url install_deps force python system_site_packages editable pip_args suffix name_source'
args_order = 'state global index_url install_deps force python system_site_packages editable pip_args suffix name_source'
with self.runner(args_order, check_mode_skip=True) as ctx:
ctx.run(state='install', name_source=[self.vars.name, self.vars.source])
self._capture_results(ctx)

with self.runner('state include_injected index_url force editable pip_args name', check_mode_skip=True) as ctx:
with self.runner('state global include_injected index_url force editable pip_args name', check_mode_skip=True) as ctx:
ctx.run(state='upgrade')
self._capture_results(ctx)

Expand Down
3 changes: 3 additions & 0 deletions tests/integration/targets/pipx/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -267,3 +267,6 @@

- name: Include testcase for PR 9103 upgrade --global
ansible.builtin.include_tasks: testcase-9103-upgrade-global.yml

- name: Include testcase for issue 9619 latest --global
ansible.builtin.include_tasks: testcase-9619-latest-global.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
# 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: 9619-Ensure application hello-world is uninstalled
community.general.pipx:
name: hello-world
state: absent
global: true

- name: 9619-Install application hello-world
community.general.pipx:
name: hello-world
source: hello-world==0.1
global: true
register: install_hw

- name: 9619-Upgrade application hello-world
community.general.pipx:
state: latest
name: hello-world
global: true
register: latest_hw

- name: 9619-Ensure application pylint is uninstalled
community.general.pipx:
name: pylint
state: absent
global: true

- name: 9619-Assertions
ansible.builtin.assert:
that:
- install_hw is changed
- latest_hw is changed
- latest_hw.cmd[-3] == "upgrade"
- latest_hw.cmd[-2] == "--global"

0 comments on commit 03dfed4

Please # to comment.