Skip to content

Commit

Permalink
Fix homebrew tap name handling (ansible-collections#9546)
Browse files Browse the repository at this point in the history
* 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 <[email protected]>

---------

Co-authored-by: Felix Fontein <[email protected]>
  • Loading branch information
UnknownPlatypus and felixfontein authored Jan 13, 2025
1 parent 94d5256 commit 114deae
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -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).
2 changes: 1 addition & 1 deletion plugins/modules/homebrew.py
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ def _save_package_info(self, package_detail, package_name):
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)

Expand Down
24 changes: 24 additions & 0 deletions tests/integration/targets/homebrew/tasks/formulae.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 == []"

0 comments on commit 114deae

Please sign in to comment.