From 98e2e30a4741b1814eb0d86c0e7c582471d712bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20=C3=81lvaro?= Date: Fri, 4 Sep 2020 16:10:51 +0200 Subject: [PATCH 1/3] feat: Update macOS brew list command for casks --- salt/modules/mac_brew_pkg.py | 56 ++++++++++--------------- tests/unit/modules/test_mac_brew_pkg.py | 4 +- 2 files changed, 24 insertions(+), 36 deletions(-) diff --git a/salt/modules/mac_brew_pkg.py b/salt/modules/mac_brew_pkg.py index 1f9402103372..c4f2bb099306 100644 --- a/salt/modules/mac_brew_pkg.py +++ b/salt/modules/mac_brew_pkg.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- """ Homebrew for macOS @@ -8,7 +7,6 @@ *'pkg.install' is not available*), see :ref:`here `. """ -from __future__ import absolute_import, print_function, unicode_literals # Import python libs import copy @@ -25,10 +23,6 @@ import salt.utils.versions from salt.exceptions import CommandExecutionError, MinionError, SaltInvocationError -# Import third party libs -from salt.ext import six -from salt.ext.six.moves import zip - log = logging.getLogger(__name__) # Define the module's virtual name @@ -68,7 +62,7 @@ def _pin(pkg, runas=None): """ Pin pkg """ - cmd = "pin {0}".format(pkg) + cmd = "pin {}".format(pkg) try: _call_brew(cmd) except CommandExecutionError: @@ -82,7 +76,7 @@ def _unpin(pkg, runas=None): """ Pin pkg """ - cmd = "unpin {0}".format(pkg) + cmd = "unpin {}".format(pkg) try: _call_brew(cmd) except CommandExecutionError: @@ -100,7 +94,7 @@ def _tap(tap, runas=None): if tap in _list_taps(): return True - cmd = "tap {0}".format(tap) + cmd = "tap {}".format(tap) try: _call_brew(cmd) except CommandExecutionError: @@ -182,7 +176,7 @@ def list_pkgs(versions_as_list=False, **kwargs): # Grab packages from brew cask, if available. # Brew Cask doesn't provide a JSON interface, must be parsed the old way. try: - cask_cmd = "cask list --versions" + cask_cmd = "list --cask --versions" out = _call_brew(cask_cmd)["stdout"] for line in out.splitlines(): @@ -260,12 +254,10 @@ def get_version(pkg_info): # Perhaps this will need an option to pick devel by default return pkg_info["versions"]["stable"] or pkg_info["versions"]["devel"] - versions_dict = dict( - (key, get_version(val)) for key, val in six.iteritems(_info(*names)) - ) + versions_dict = {key: get_version(val) for key, val in _info(*names).items()} if len(names) == 1: - return next(six.itervalues(versions_dict)) + return next(iter(versions_dict.values())) else: return versions_dict @@ -312,7 +304,7 @@ def remove(name=None, pkgs=None, **kwargs): targets = [x for x in pkg_params if x in old] if not targets: return {} - cmd = "uninstall {0}".format(" ".join(targets)) + cmd = "uninstall {}".format(" ".join(targets)) out = _call_brew(cmd) if out["retcode"] != 0 and out["stderr"]: @@ -368,7 +360,7 @@ def _info(*pkgs): Caveat: If one of the packages does not exist, no packages will be included in the output. """ - cmd = "info --json=v1 {0}".format(" ".join(pkgs)) + cmd = "info --json=v1 {}".format(" ".join(pkgs)) brew_result = _call_brew(cmd) if brew_result["retcode"]: log.error("Failed to get info about packages: %s", " ".join(pkgs)) @@ -463,9 +455,9 @@ def install(name=None, pkgs=None, taps=None, options=None, **kwargs): _tap(tap) if options: - cmd = "install {0} {1}".format(formulas, " ".join(options)) + cmd = "install {} {}".format(formulas, " ".join(options)) else: - cmd = "install {0}".format(formulas) + cmd = "install {}".format(formulas) out = _call_brew(cmd) if out["retcode"] != 0 and out["stderr"]: @@ -505,7 +497,7 @@ def list_upgrades(refresh=True, **kwargs): # pylint: disable=W0613 try: data = salt.utils.json.loads(res["stdout"]) except ValueError as err: - msg = 'unable to interpret output from "brew outdated": {0}'.format(err) + msg = 'unable to interpret output from "brew outdated": {}'.format(err) log.error(msg) raise CommandExecutionError(msg) @@ -683,27 +675,25 @@ def hold(name=None, pkgs=None, sources=None, **kwargs): # pylint: disable=W0613 ret[target] = {"name": target, "changes": {}, "result": False, "comment": ""} if target not in installed: - ret[target]["comment"] = "Package {0} does not have a state.".format(target) + ret[target]["comment"] = "Package {} does not have a state.".format(target) elif target not in pinned: if "test" in __opts__ and __opts__["test"]: ret[target].update(result=None) - ret[target]["comment"] = "Package {0} is set to be held.".format(target) + ret[target]["comment"] = "Package {} is set to be held.".format(target) else: result = _pin(target) if result: changes = {"old": "install", "new": "hold"} ret[target].update(changes=changes, result=True) - ret[target]["comment"] = "Package {0} is now being held.".format( + ret[target]["comment"] = "Package {} is now being held.".format( target ) else: ret[target].update(result=False) - ret[target]["comment"] = "Unable to hold package {0}.".format( - target - ) + ret[target]["comment"] = "Unable to hold package {}.".format(target) else: ret[target].update(result=True) - ret[target]["comment"] = "Package {0} is already set to be held.".format( + ret[target]["comment"] = "Package {} is already set to be held.".format( target ) return ret @@ -761,11 +751,11 @@ def unhold(name=None, pkgs=None, sources=None, **kwargs): # pylint: disable=W06 ret[target] = {"name": target, "changes": {}, "result": False, "comment": ""} if target not in installed: - ret[target]["comment"] = "Package {0} does not have a state.".format(target) + ret[target]["comment"] = "Package {} does not have a state.".format(target) elif target in pinned: if "test" in __opts__ and __opts__["test"]: ret[target].update(result=None) - ret[target]["comment"] = "Package {0} is set to be unheld.".format( + ret[target]["comment"] = "Package {} is set to be unheld.".format( target ) else: @@ -775,17 +765,17 @@ def unhold(name=None, pkgs=None, sources=None, **kwargs): # pylint: disable=W06 ret[target].update(changes=changes, result=True) ret[target][ "comment" - ] = "Package {0} is no longer being held.".format(target) + ] = "Package {} is no longer being held.".format(target) else: ret[target].update(result=False) - ret[target]["comment"] = "Unable to unhold package {0}.".format( + ret[target]["comment"] = "Unable to unhold package {}.".format( target ) else: ret[target].update(result=True) - ret[target][ - "comment" - ] = "Package {0} is already set not to be held.".format(target) + ret[target]["comment"] = "Package {} is already set not to be held.".format( + target + ) return ret diff --git a/tests/unit/modules/test_mac_brew_pkg.py b/tests/unit/modules/test_mac_brew_pkg.py index cf1272dd0652..b7869c0edda5 100644 --- a/tests/unit/modules/test_mac_brew_pkg.py +++ b/tests/unit/modules/test_mac_brew_pkg.py @@ -1,10 +1,8 @@ -# -*- coding: utf-8 -*- """ :codeauthor: Nicole Thomas """ # Import Python libs -from __future__ import absolute_import, print_function, unicode_literals # Import Salt Libs import salt.modules.mac_brew_pkg as mac_brew @@ -141,7 +139,7 @@ def custom_call_brew(cmd, failhard=True): "stderr": "", "retcode": 0, } - elif cmd == "cask list --versions": + elif cmd == "list --cask --versions": result = { "stdout": "macvim 8.1.151\nfont-firacode-nerd-font 2.0.0", "stderr": "", From 8f594b4bf901e7d01d73ff2866a135627446da9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20=C3=81lvaro?= Date: Fri, 4 Sep 2020 16:22:05 +0200 Subject: [PATCH 2/3] doc: Add changelog entry --- changelog/58381.changed | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/58381.changed diff --git a/changelog/58381.changed b/changelog/58381.changed new file mode 100644 index 000000000000..7311a48e0f66 --- /dev/null +++ b/changelog/58381.changed @@ -0,0 +1 @@ +Change `brew cask --list` to `brew list --cask` \ No newline at end of file From 2819d04198a825fe91a093ab1d4b10fc2062165b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20=C3=81lvaro?= Date: Mon, 12 Oct 2020 10:07:03 +0200 Subject: [PATCH 3/3] Remove import headers --- tests/unit/modules/test_mac_brew_pkg.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/unit/modules/test_mac_brew_pkg.py b/tests/unit/modules/test_mac_brew_pkg.py index b7869c0edda5..7d3464a68c3a 100644 --- a/tests/unit/modules/test_mac_brew_pkg.py +++ b/tests/unit/modules/test_mac_brew_pkg.py @@ -2,14 +2,9 @@ :codeauthor: Nicole Thomas """ -# Import Python libs - -# Import Salt Libs import salt.modules.mac_brew_pkg as mac_brew import salt.utils.pkg from salt.exceptions import CommandExecutionError - -# Import Salt Testing Libs from tests.support.mixins import LoaderModuleMockMixin from tests.support.mock import MagicMock, Mock, patch from tests.support.unit import TestCase