Skip to content

Commit 4fa83b7

Browse files
twangboydwoz
authored andcommitted
Fix some failing tests
1 parent dd2c86d commit 4fa83b7

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

salt/modules/win_pkg.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,15 @@ def list_repo_pkgs(*args, saltenv="base", **kwargs):
367367
# Generate a list of packages and their available versions
368368
repo_pkgs = {}
369369
for pkg in pkgs:
370-
repo_pkgs.update({pkg: list(pkgs[pkg].keys())})
370+
repo_pkgs.update(
371+
{
372+
pkg: sorted(
373+
list(pkgs[pkg].keys()),
374+
key=cmp_to_key(_reverse_cmp_pkg_versions),
375+
reverse=True,
376+
)
377+
}
378+
)
371379

372380
# If no args passed, just return everything
373381
if not args:
@@ -376,13 +384,17 @@ def list_repo_pkgs(*args, saltenv="base", **kwargs):
376384
# Loop through the args and return info for each specified package
377385
ret = {}
378386
for arg in args:
387+
if "=" in arg:
388+
pkg_name, pkg_version = arg.split("=")
389+
else:
390+
pkg_name = arg
391+
pkg_version = ""
379392
for pkg in repo_pkgs:
380-
if fnmatch(pkg, arg):
381-
ret.update({pkg: repo_pkgs[pkg]})
382-
383-
# If ret is empty, return everything
384-
if not ret:
385-
ret = repo_pkgs
393+
if fnmatch(pkg, pkg_name):
394+
if pkg_version and pkg_version in repo_pkgs[pkg]:
395+
ret.setdefault(pkg, []).append(pkg_version)
396+
else:
397+
ret.setdefault(pkg, []).extend(repo_pkgs[pkg])
386398

387399
return ret
388400

tests/pytests/functional/modules/test_win_pkg.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,11 @@ def test_list_available(pkg, repo, as_dict, reverse, expected):
7676
@pytest.mark.parametrize(
7777
"pkg_name, expected",
7878
[
79-
("my-software", {"my-software": ["1.0.1", "1.0.2"]}),
80-
("my-soft*", {"my-software": ["1.0.1", "1.0.2"]}),
79+
("my-software", {"my-software": ["1.0.2", "1.0.1"]}),
80+
("my-software=1.0.1", {"my-software": ["1.0.1"]}),
81+
("my-soft*", {"my-software": ["1.0.2", "1.0.1"]}),
8182
("your-software", {"your-software": ["1.0.0"]}),
82-
(None, {"my-software": ["1.0.1", "1.0.2"], "your-software": ["1.0.0"]}),
83+
(None, {"my-software": ["1.0.2", "1.0.1"], "your-software": ["1.0.0"]}),
8384
],
8485
)
8586
def test_list_repo_pkgs(pkg, repo, pkg_name, expected):

0 commit comments

Comments
 (0)