File remove-arch-from-name-when-pkg.list_pkgs-is-called-w.patch of Package salt
From 06482f99ed8bad5ffe5fb67182fd3aea166b8a1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez@suse.com>
Date: Mon, 19 Nov 2018 11:46:26 +0000
Subject: [PATCH] Remove arch from name when pkg.list_pkgs is called
with 'attr' (bsc#1114029)
Add unit tests for pkg_resource.format_pkg_list
Fix pylint issues
Refactor: Return requested attr even if empty
Add corner cases on package names to unit tests
Fix Zypper/Yum unit test after returning empty requested attrs
Add Yum/Zypper list_pkgs unit tests for multiple versions reported
Compare testing items properly to avoid unwanted failures
Use assertCountEqual when running on Python3
Add missing import for the six module
Strip architecture from package name in aptpkg module
Use parse_arch_from_name if available on the virtual pkg module
Adapt unit tests after introducing parse_arch_from_name
Use PKG_ARCH_SEPARATOR in pkg.normalize_name method
Add pkg_resource to setup loader modules. Fix pylint
Remove unnecessary lambda
Return None instead empty string for arch and release in pkg.list_pkgs
---
tests/unit/modules/test_zypperpkg.py | 49 +++++++++-------------------
1 file changed, 16 insertions(+), 33 deletions(-)
diff --git a/tests/unit/modules/test_zypperpkg.py b/tests/unit/modules/test_zypperpkg.py
index 36261285cb..7bff7065c6 100644
--- a/tests/unit/modules/test_zypperpkg.py
+++ b/tests/unit/modules/test_zypperpkg.py
@@ -1,33 +1,24 @@
-# -*- coding: utf-8 -*-
"""
:codeauthor: Bo Maryniuk <bo@suse.de>
"""
-# Import Python Libs
-from __future__ import absolute_import
import os
from xml.dom import minidom
import salt.modules.pkg_resource as pkg_resource
import salt.modules.zypperpkg as zypper
-
-# Import Salt libs
import salt.utils.files
import salt.utils.pkg
from salt.exceptions import CommandExecutionError
from salt.ext import six
-
-# Import 3rd-party libs
from salt.ext.six.moves import configparser
-
-# Import Salt Testing Libs
from tests.support.mixins import LoaderModuleMockMixin
from tests.support.mock import MagicMock, Mock, call, patch
from tests.support.unit import TestCase
-class ZyppCallMock(object):
+class ZyppCallMock:
def __init__(self, return_value=None):
self.__return_value = return_value
@@ -124,7 +115,7 @@ class ZypperTestCase(TestCase, LoaderModuleMockMixin):
:return:
"""
- class RunSniffer(object):
+ class RunSniffer:
def __init__(self, stdout=None, stderr=None, retcode=None):
self.calls = list()
self._stdout = stdout or ""
@@ -237,7 +228,7 @@ class ZypperTestCase(TestCase, LoaderModuleMockMixin):
):
with self.assertRaisesRegex(
CommandExecutionError,
- "^Zypper command failure: Some handled zypper internal error{0}Another zypper internal error$".format(
+ "^Zypper command failure: Some handled zypper internal error{}Another zypper internal error$".format(
os.linesep
),
):
@@ -316,7 +307,7 @@ class ZypperTestCase(TestCase, LoaderModuleMockMixin):
"--no-refresh",
"--disable-repositories",
"products",
- u"-i",
+ "-i",
],
env={"ZYPP_READONLY_HACK": "1"},
output_loglevel="trace",
@@ -338,14 +329,9 @@ class ZypperTestCase(TestCase, LoaderModuleMockMixin):
"eol_t",
"registerrelease",
]:
- if six.PY3:
- self.assertCountEqual(
- test_data[kwd], [prod.get(kwd) for prod in products]
- )
- else:
- self.assertEqual(
- test_data[kwd], sorted([prod.get(kwd) for prod in products])
- )
+ self.assertCountEqual(
+ test_data[kwd], [prod.get(kwd) for prod in products]
+ )
cmd_run_all.assert_has_calls([mock_call])
def test_refresh_db(self):
@@ -797,7 +783,7 @@ Use 'zypper repos' to get the list of defined repositories.
Repository 'DUMMY' not found by its alias, number, or URI.
"""
- class FailingZypperDummy(object):
+ class FailingZypperDummy:
def __init__(self):
self.stdout = zypper_out
self.stderr = ""
@@ -1083,10 +1069,7 @@ Repository 'DUMMY' not found by its alias, number, or URI.
],
}
for pkgname, pkginfo in pkgs.items():
- if six.PY3:
- self.assertCountEqual(pkginfo, expected_pkg_list[pkgname])
- else:
- self.assertItemsEqual(pkginfo, expected_pkg_list[pkgname])
+ self.assertCountEqual(pkginfo, expected_pkg_list[pkgname])
def test_list_patches(self):
"""
@@ -1446,7 +1429,7 @@ Repository 'DUMMY' not found by its alias, number, or URI.
:return:
"""
- class ListPackages(object):
+ class ListPackages:
def __init__(self):
self._packages = ["vim", "pico"]
self._pkgs = {
@@ -1884,7 +1867,7 @@ Repository 'DUMMY' not found by its alias, number, or URI.
"""
_zpr = MagicMock()
_zpr.nolock.xml.call = MagicMock(return_value=minidom.parseString(xmldoc))
- assert isinstance(zypper.Wildcard(_zpr)("libzypp", "*.1"), six.string_types)
+ assert isinstance(zypper.Wildcard(_zpr)("libzypp", "*.1"), str)
def test_wildcard_to_query_condition_preservation(self):
"""
@@ -1904,14 +1887,14 @@ Repository 'DUMMY' not found by its alias, number, or URI.
for op in zypper.Wildcard.Z_OP:
assert zypper.Wildcard(_zpr)(
- "libzypp", "{0}*.1".format(op)
- ) == "{0}17.2.6-27.9.1".format(op)
+ "libzypp", "{}*.1".format(op)
+ ) == "{}17.2.6-27.9.1".format(op)
# Auto-fix feature: moves operator from end to front
for op in zypper.Wildcard.Z_OP:
assert zypper.Wildcard(_zpr)(
- "libzypp", "16*{0}".format(op)
- ) == "{0}16.2.5-25.1".format(op)
+ "libzypp", "16*{}".format(op)
+ ) == "{}16.2.5-25.1".format(op)
def test_wildcard_to_query_unsupported_operators(self):
"""
@@ -1930,7 +1913,7 @@ Repository 'DUMMY' not found by its alias, number, or URI.
_zpr.nolock.xml.call = MagicMock(return_value=minidom.parseString(xmldoc))
with self.assertRaises(CommandExecutionError):
for op in [">>", "==", "<<", "+"]:
- zypper.Wildcard(_zpr)("libzypp", "{0}*.1".format(op))
+ zypper.Wildcard(_zpr)("libzypp", "{}*.1".format(op))
@patch("salt.modules.zypperpkg._get_visible_patterns")
def test__get_installed_patterns(self, get_visible_patterns):
--
2.29.2