Fix homebrew tap name handling (#9546)

* Add failing test

* Use fully qualified names

* Add changelog fragment

* Remove unnecessary initial cleanup

* Fix tests/integration/targets/homebrew/tasks/formulae.yml

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

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
pull/8165/head
Thibaut Decombe 2025-01-13 18:09:06 +01:00 committed by GitHub
parent 94d5256adb
commit 114deae3e4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 27 additions and 1 deletions

View File

@ -0,0 +1,2 @@
bugfixes:
- homebrew - fix incorrect handling of homebrew modules when a tap is requested (https://github.com/ansible-collections/community.general/pull/9546, https://github.com/ansible-collections/community.general/issues/9533).

View File

@ -385,7 +385,7 @@ class Homebrew(object):
self.outdated_packages.add(package_name)
def _extract_package_name(self, package_detail, is_cask):
canonical_name = package_detail["token"] if is_cask else package_detail["name"] # For ex: 'sqlite'
canonical_name = package_detail["full_token"] if is_cask else package_detail["full_name"] # For ex: 'sqlite'
all_valid_names = set(package_detail.get("aliases", [])) # For ex: {'sqlite3'}
all_valid_names.add(canonical_name)

View File

@ -363,3 +363,27 @@
- "reinstall_result.msg == 'Package already installed: sqlite3'"
- "reinstall_result.changed_pkgs == []"
- "reinstall_result.unchanged_pkgs == ['sqlite3']"
# Test with homebrew tap
- block:
- name: Tap terraform homebrew repository
community.general.homebrew_tap:
name: hashicorp/tap
become: true
become_user: "{{ brew_stat.stat.pw_name }}"
- name: Install homebrew tap
community.general.homebrew:
name: hashicorp/tap/terraform
state: latest
update_homebrew: false
register: terraform_install_result
become: true
become_user: "{{ brew_stat.stat.pw_name }}"
- assert:
that:
- terraform_install_result is changed
- "terraform_install_result.msg == 'Package upgraded: hashicorp/tap/terraform'"
- "terraform_install_result.changed_pkgs == ['hashicorp/tap/terraform']"
- "terraform_install_result.unchanged_pkgs == []"