Accepting request 1192186 from systemsmanagement:saltstack
OBS-URL: https://build.opensuse.org/request/show/1192186 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/salt?expand=0&rev=155
This commit is contained in:
commit
ce0b2cbb60
@ -1 +1 @@
|
||||
597049dd3d38cffb3d6e555ded591bc36ed09a58
|
||||
e793c02a9091b88d181f190847fd35964ce3e91e
|
883
make-tests-compatible-with-venv-bundle.patch
Normal file
883
make-tests-compatible-with-venv-bundle.patch
Normal file
@ -0,0 +1,883 @@
|
||||
From 25c3df7713bd2a19a0980358fa72c1c48a08a1f4 Mon Sep 17 00:00:00 2001
|
||||
From: Marek Czernek <marek.czernek@suse.com>
|
||||
Date: Wed, 7 Aug 2024 10:28:07 +0200
|
||||
Subject: [PATCH] Make tests compatible with venv bundle
|
||||
|
||||
Co-authored-by: cmcmarrow <charles.mcmarrow.4@gmail.com>
|
||||
---
|
||||
tests/pytests/functional/modules/test_sdb.py | 1 +
|
||||
tests/pytests/functional/modules/test_yaml.py | 2 +-
|
||||
.../rthooks/test_salt_utils_vt_terminal.py | 22 +++++--
|
||||
.../pyinstaller/rthooks/test_subprocess.py | 22 +++++--
|
||||
.../utils/yamllint/test_yamllint.py | 2 +-
|
||||
tests/pytests/unit/modules/test_pip.py | 63 +++++++++++++------
|
||||
.../unit/modules/test_transactional_update.py | 13 ++--
|
||||
tests/pytests/unit/states/test_pkgrepo.py | 3 +-
|
||||
tests/pytests/unit/test_fileserver.py | 8 +--
|
||||
tests/pytests/unit/utils/test_gitfs.py | 18 ++++++
|
||||
tests/pytests/unit/utils/test_msgpack.py | 2 +-
|
||||
tests/pytests/unit/utils/test_pycrypto.py | 25 ++++----
|
||||
tests/unit/test_config.py | 20 +++++-
|
||||
tests/unit/utils/test_sdb.py | 2 +-
|
||||
tests/unit/utils/test_templates.py | 34 ++++++++++
|
||||
15 files changed, 177 insertions(+), 60 deletions(-)
|
||||
|
||||
diff --git a/tests/pytests/functional/modules/test_sdb.py b/tests/pytests/functional/modules/test_sdb.py
|
||||
index 5519bf8ab57..837e7515d30 100644
|
||||
--- a/tests/pytests/functional/modules/test_sdb.py
|
||||
+++ b/tests/pytests/functional/modules/test_sdb.py
|
||||
@@ -16,6 +16,7 @@ def minion_config_overrides():
|
||||
}
|
||||
|
||||
|
||||
+@pytest.mark.skip("Great module migration")
|
||||
@pytest.mark.parametrize(
|
||||
"expected_value",
|
||||
(
|
||||
diff --git a/tests/pytests/functional/modules/test_yaml.py b/tests/pytests/functional/modules/test_yaml.py
|
||||
index 2a8fbc113ff..9aad0dfdc8c 100644
|
||||
--- a/tests/pytests/functional/modules/test_yaml.py
|
||||
+++ b/tests/pytests/functional/modules/test_yaml.py
|
||||
@@ -13,7 +13,7 @@ try:
|
||||
import salt.modules.yaml
|
||||
import salt.utils.yamllint
|
||||
|
||||
- YAMLLINT_AVAILABLE = True
|
||||
+ YAMLLINT_AVAILABLE = salt.utils.yamllint.has_yamllint()
|
||||
except ImportError:
|
||||
YAMLLINT_AVAILABLE = False
|
||||
|
||||
diff --git a/tests/pytests/functional/utils/pyinstaller/rthooks/test_salt_utils_vt_terminal.py b/tests/pytests/functional/utils/pyinstaller/rthooks/test_salt_utils_vt_terminal.py
|
||||
index c45b5730a8e..ea687c0776d 100644
|
||||
--- a/tests/pytests/functional/utils/pyinstaller/rthooks/test_salt_utils_vt_terminal.py
|
||||
+++ b/tests/pytests/functional/utils/pyinstaller/rthooks/test_salt_utils_vt_terminal.py
|
||||
@@ -8,6 +8,9 @@ import salt.utils.pyinstaller.rthooks._overrides as overrides
|
||||
from tests.support import mock
|
||||
from tests.support.helpers import PatchedEnviron
|
||||
|
||||
+LD_LIBRARY_PATH = ""
|
||||
+if os.environ.get('VIRTUAL_ENV'):
|
||||
+ LD_LIBRARY_PATH = f"{os.environ.get('VIRTUAL_ENV')}/lib"
|
||||
|
||||
@pytest.fixture(params=("LD_LIBRARY_PATH", "LIBPATH"))
|
||||
def envvar(request):
|
||||
@@ -17,9 +20,14 @@ def envvar(request):
|
||||
@pytest.fixture
|
||||
def meipass(envvar):
|
||||
with mock.patch("salt.utils.pyinstaller.rthooks._overrides.sys") as patched_sys:
|
||||
- patched_sys._MEIPASS = "{}_VALUE".format(envvar)
|
||||
- assert overrides.sys._MEIPASS == "{}_VALUE".format(envvar)
|
||||
- yield "{}_VALUE".format(envvar)
|
||||
+ ld_path_mock_val = f"{envvar}_VALUE"
|
||||
+ if envvar == "LD_LIBRARY_PATH" and LD_LIBRARY_PATH:
|
||||
+ # venv-minion python wrapper hardcodes LD_LIB_PATH that
|
||||
+ # we cannot overwrite from the testsuite
|
||||
+ ld_path_mock_val = LD_LIBRARY_PATH
|
||||
+ patched_sys._MEIPASS = ld_path_mock_val
|
||||
+ assert overrides.sys._MEIPASS == ld_path_mock_val
|
||||
+ yield ld_path_mock_val
|
||||
assert not hasattr(sys, "_MEIPASS")
|
||||
assert not hasattr(overrides.sys, "_MEIPASS")
|
||||
|
||||
@@ -111,7 +119,8 @@ def test_vt_terminal_environ_cleanup(envvar, meipass):
|
||||
returned_env = json.loads(buffer_o)
|
||||
assert returned_env != original_env
|
||||
assert envvar in returned_env
|
||||
- assert returned_env[envvar] == ""
|
||||
+ envvar_value = LD_LIBRARY_PATH if envvar == "LD_LIBRARY_PATH" else ""
|
||||
+ assert returned_env[envvar] == envvar_value
|
||||
|
||||
|
||||
def test_vt_terminal_environ_cleanup_passed_directly_not_removed(envvar, meipass):
|
||||
@@ -139,4 +148,7 @@ def test_vt_terminal_environ_cleanup_passed_directly_not_removed(envvar, meipass
|
||||
returned_env = json.loads(buffer_o)
|
||||
assert returned_env != original_env
|
||||
assert envvar in returned_env
|
||||
- assert returned_env[envvar] == envvar
|
||||
+ envvar_val = envvar
|
||||
+ if LD_LIBRARY_PATH and envvar == "LD_LIBRARY_PATH":
|
||||
+ envvar_val = LD_LIBRARY_PATH
|
||||
+ assert returned_env[envvar] == envvar_val
|
||||
diff --git a/tests/pytests/functional/utils/pyinstaller/rthooks/test_subprocess.py b/tests/pytests/functional/utils/pyinstaller/rthooks/test_subprocess.py
|
||||
index 836e392d016..e4b5420d5e3 100644
|
||||
--- a/tests/pytests/functional/utils/pyinstaller/rthooks/test_subprocess.py
|
||||
+++ b/tests/pytests/functional/utils/pyinstaller/rthooks/test_subprocess.py
|
||||
@@ -9,6 +9,9 @@ import salt.utils.pyinstaller.rthooks._overrides as overrides
|
||||
from tests.support import mock
|
||||
from tests.support.helpers import PatchedEnviron
|
||||
|
||||
+LD_LIBRARY_PATH = ""
|
||||
+if os.environ.get('VIRTUAL_ENV'):
|
||||
+ LD_LIBRARY_PATH = f"{os.environ.get('VIRTUAL_ENV')}/lib"
|
||||
|
||||
@pytest.fixture(params=("LD_LIBRARY_PATH", "LIBPATH"))
|
||||
def envvar(request):
|
||||
@@ -18,9 +21,14 @@ def envvar(request):
|
||||
@pytest.fixture
|
||||
def meipass(envvar):
|
||||
with mock.patch("salt.utils.pyinstaller.rthooks._overrides.sys") as patched_sys:
|
||||
- patched_sys._MEIPASS = "{}_VALUE".format(envvar)
|
||||
- assert overrides.sys._MEIPASS == "{}_VALUE".format(envvar)
|
||||
- yield "{}_VALUE".format(envvar)
|
||||
+ ld_path_mock_val = f"{envvar}_VALUE"
|
||||
+ if envvar == "LD_LIBRARY_PATH" and LD_LIBRARY_PATH:
|
||||
+ # venv-minion python wrapper hardcodes LD_LIB_PATH that
|
||||
+ # we cannot overwrite from the testsuite
|
||||
+ ld_path_mock_val = LD_LIBRARY_PATH
|
||||
+ patched_sys._MEIPASS = ld_path_mock_val
|
||||
+ assert overrides.sys._MEIPASS == ld_path_mock_val
|
||||
+ yield ld_path_mock_val
|
||||
assert not hasattr(sys, "_MEIPASS")
|
||||
assert not hasattr(overrides.sys, "_MEIPASS")
|
||||
|
||||
@@ -88,7 +96,8 @@ def test_subprocess_popen_environ_cleanup(envvar, meipass):
|
||||
returned_env = json.loads(stdout)
|
||||
assert returned_env != original_env
|
||||
assert envvar in returned_env
|
||||
- assert returned_env[envvar] == ""
|
||||
+ envvar_value = LD_LIBRARY_PATH if envvar == "LD_LIBRARY_PATH" else ""
|
||||
+ assert returned_env[envvar] == envvar_value
|
||||
|
||||
|
||||
def test_subprocess_popen_environ_cleanup_passed_directly_not_removed(envvar, meipass):
|
||||
@@ -108,4 +117,7 @@ def test_subprocess_popen_environ_cleanup_passed_directly_not_removed(envvar, me
|
||||
returned_env = json.loads(stdout)
|
||||
assert returned_env != original_env
|
||||
assert envvar in returned_env
|
||||
- assert returned_env[envvar] == envvar
|
||||
+ envvar_val = envvar
|
||||
+ if LD_LIBRARY_PATH and envvar == "LD_LIBRARY_PATH":
|
||||
+ envvar_val = LD_LIBRARY_PATH
|
||||
+ assert returned_env[envvar] == envvar_val
|
||||
diff --git a/tests/pytests/functional/utils/yamllint/test_yamllint.py b/tests/pytests/functional/utils/yamllint/test_yamllint.py
|
||||
index 403c6fc610e..3c730523c4d 100644
|
||||
--- a/tests/pytests/functional/utils/yamllint/test_yamllint.py
|
||||
+++ b/tests/pytests/functional/utils/yamllint/test_yamllint.py
|
||||
@@ -7,7 +7,7 @@ import salt.utils.versions as versions
|
||||
try:
|
||||
import salt.utils.yamllint as yamllint
|
||||
|
||||
- YAMLLINT_AVAILABLE = True
|
||||
+ YAMLLINT_AVAILABLE = yamllint.has_yamllint()
|
||||
except ImportError:
|
||||
YAMLLINT_AVAILABLE = False
|
||||
|
||||
diff --git a/tests/pytests/unit/modules/test_pip.py b/tests/pytests/unit/modules/test_pip.py
|
||||
index 4b2da77786b..fbe0dc5f1cf 100644
|
||||
--- a/tests/pytests/unit/modules/test_pip.py
|
||||
+++ b/tests/pytests/unit/modules/test_pip.py
|
||||
@@ -15,6 +15,10 @@ MISSING_SETUP_PY_FILE = not os.path.exists(
|
||||
os.path.join(RUNTIME_VARS.CODE_DIR, "setup.py")
|
||||
)
|
||||
|
||||
+TARGET = []
|
||||
+if os.environ.get('VENV_PIP_TARGET'):
|
||||
+ TARGET = ["--target", os.environ.get('VENV_PIP_TARGET')]
|
||||
+
|
||||
|
||||
class FakeFopen:
|
||||
def __init__(self, filename):
|
||||
@@ -102,6 +106,7 @@ def test_install_frozen_app(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
pkg,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
@@ -123,6 +128,7 @@ def test_install_source_app(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
pkg,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
@@ -143,6 +149,7 @@ def test_fix4361(python_binary):
|
||||
"install",
|
||||
"--requirement",
|
||||
"requirements.txt",
|
||||
+ *TARGET,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
expected_cmd,
|
||||
@@ -169,7 +176,7 @@ def test_install_multiple_editable(python_binary):
|
||||
"git+https://github.com/saltstack/salt-testing.git#egg=SaltTesting",
|
||||
]
|
||||
|
||||
- expected = [*python_binary, "install"]
|
||||
+ expected = [*python_binary, "install", *TARGET]
|
||||
for item in editables:
|
||||
expected.extend(["--editable", item])
|
||||
|
||||
@@ -205,7 +212,7 @@ def test_install_multiple_pkgs_and_editables(python_binary):
|
||||
"git+https://github.com/saltstack/salt-testing.git#egg=SaltTesting",
|
||||
]
|
||||
|
||||
- expected = [*python_binary, "install"]
|
||||
+ expected = [*python_binary, "install", *TARGET]
|
||||
expected.extend(pkgs)
|
||||
for item in editables:
|
||||
expected.extend(["--editable", item])
|
||||
@@ -241,6 +248,7 @@ def test_install_multiple_pkgs_and_editables(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
pkgs[0],
|
||||
"--editable",
|
||||
editables[0],
|
||||
@@ -268,7 +276,7 @@ def test_issue5940_install_multiple_pip_mirrors(python_binary):
|
||||
expected = [*python_binary, "install", "--use-mirrors"]
|
||||
for item in mirrors:
|
||||
expected.extend(["--mirrors", item])
|
||||
- expected.append("pep8")
|
||||
+ expected = [*expected, *TARGET, "pep8"]
|
||||
|
||||
# Passing mirrors as a list
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
@@ -300,6 +308,7 @@ def test_issue5940_install_multiple_pip_mirrors(python_binary):
|
||||
"--use-mirrors",
|
||||
"--mirrors",
|
||||
mirrors[0],
|
||||
+ *TARGET,
|
||||
"pep8",
|
||||
]
|
||||
|
||||
@@ -327,7 +336,7 @@ def test_install_with_multiple_find_links(python_binary):
|
||||
expected = [*python_binary, "install"]
|
||||
for item in find_links:
|
||||
expected.extend(["--find-links", item])
|
||||
- expected.append(pkg)
|
||||
+ expected = [*expected, *TARGET, pkg]
|
||||
|
||||
# Passing mirrors as a list
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
@@ -370,6 +379,7 @@ def test_install_with_multiple_find_links(python_binary):
|
||||
"install",
|
||||
"--find-links",
|
||||
find_links[0],
|
||||
+ *TARGET,
|
||||
pkg,
|
||||
]
|
||||
|
||||
@@ -435,6 +445,7 @@ def test_install_cached_requirements_used(python_binary):
|
||||
"install",
|
||||
"--requirement",
|
||||
"my_cached_reqs",
|
||||
+ *TARGET,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
@@ -491,6 +502,7 @@ def test_install_log_argument_in_resulting_command(python_binary):
|
||||
"install",
|
||||
"--log",
|
||||
log_path,
|
||||
+ *TARGET,
|
||||
pkg,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
@@ -521,7 +533,7 @@ def test_install_timeout_argument_in_resulting_command(python_binary):
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, timeout=10)
|
||||
mock.assert_called_with(
|
||||
- expected + [10, pkg],
|
||||
+ expected + [10, *TARGET, pkg],
|
||||
saltenv="base",
|
||||
runas=None,
|
||||
use_vt=False,
|
||||
@@ -533,7 +545,7 @@ def test_install_timeout_argument_in_resulting_command(python_binary):
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, timeout="10")
|
||||
mock.assert_called_with(
|
||||
- expected + ["10", pkg],
|
||||
+ expected + ["10", *TARGET, pkg],
|
||||
saltenv="base",
|
||||
runas=None,
|
||||
use_vt=False,
|
||||
@@ -557,6 +569,7 @@ def test_install_index_url_argument_in_resulting_command(python_binary):
|
||||
"install",
|
||||
"--index-url",
|
||||
index_url,
|
||||
+ *TARGET,
|
||||
pkg,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
@@ -579,6 +592,7 @@ def test_install_extra_index_url_argument_in_resulting_command(python_binary):
|
||||
"install",
|
||||
"--extra-index-url",
|
||||
extra_index_url,
|
||||
+ *TARGET,
|
||||
pkg,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
@@ -595,7 +609,7 @@ def test_install_no_index_argument_in_resulting_command(python_binary):
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, no_index=True)
|
||||
- expected = [*python_binary, "install", "--no-index", pkg]
|
||||
+ expected = [*python_binary, "install", "--no-index", *TARGET, pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -611,7 +625,7 @@ def test_install_build_argument_in_resulting_command(python_binary):
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, build=build)
|
||||
- expected = [*python_binary, "install", "--build", build, pkg]
|
||||
+ expected = [*python_binary, "install", "--build", build, *TARGET, pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -646,6 +660,7 @@ def test_install_download_argument_in_resulting_command(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
"--download",
|
||||
download,
|
||||
pkg,
|
||||
@@ -664,7 +679,7 @@ def test_install_no_download_argument_in_resulting_command(python_binary):
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, no_download=True)
|
||||
- expected = [*python_binary, "install", "--no-download", pkg]
|
||||
+ expected = [*python_binary, "install", *TARGET, "--no-download", pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -691,6 +706,7 @@ def test_install_download_cache_dir_arguments_in_resulting_command(python_binary
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
cmd_arg,
|
||||
download_cache,
|
||||
pkg,
|
||||
@@ -720,7 +736,7 @@ def test_install_source_argument_in_resulting_command(python_binary):
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, source=source)
|
||||
- expected = [*python_binary, "install", "--source", source, pkg]
|
||||
+ expected = [*python_binary, "install", *TARGET, "--source", source, pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -739,6 +755,7 @@ def test_install_exists_action_argument_in_resulting_command(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
"--exists-action",
|
||||
action,
|
||||
pkg,
|
||||
@@ -761,7 +778,7 @@ def test_install_install_options_argument_in_resulting_command(python_binary):
|
||||
install_options = ["--exec-prefix=/foo/bar", "--install-scripts=/foo/bar/bin"]
|
||||
pkg = "pep8"
|
||||
|
||||
- expected = [*python_binary, "install"]
|
||||
+ expected = [*python_binary, "install", *TARGET]
|
||||
for item in install_options:
|
||||
expected.extend(["--install-option", item])
|
||||
expected.append(pkg)
|
||||
@@ -797,6 +814,7 @@ def test_install_install_options_argument_in_resulting_command(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
"--install-option",
|
||||
install_options[0],
|
||||
pkg,
|
||||
@@ -814,7 +832,7 @@ def test_install_global_options_argument_in_resulting_command(python_binary):
|
||||
global_options = ["--quiet", "--no-user-cfg"]
|
||||
pkg = "pep8"
|
||||
|
||||
- expected = [*python_binary, "install"]
|
||||
+ expected = [*python_binary, "install", *TARGET]
|
||||
for item in global_options:
|
||||
expected.extend(["--global-option", item])
|
||||
expected.append(pkg)
|
||||
@@ -850,6 +868,7 @@ def test_install_global_options_argument_in_resulting_command(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
"--global-option",
|
||||
global_options[0],
|
||||
pkg,
|
||||
@@ -868,7 +887,7 @@ def test_install_upgrade_argument_in_resulting_command(python_binary):
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, upgrade=True)
|
||||
- expected = [*python_binary, "install", "--upgrade", pkg]
|
||||
+ expected = [*python_binary, "install", *TARGET, "--upgrade", pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -886,6 +905,7 @@ def test_install_force_reinstall_argument_in_resulting_command(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
"--force-reinstall",
|
||||
pkg,
|
||||
]
|
||||
@@ -906,6 +926,7 @@ def test_install_ignore_installed_argument_in_resulting_command(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
"--ignore-installed",
|
||||
pkg,
|
||||
]
|
||||
@@ -923,7 +944,7 @@ def test_install_no_deps_argument_in_resulting_command(python_binary):
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, no_deps=True)
|
||||
- expected = [*python_binary, "install", "--no-deps", pkg]
|
||||
+ expected = [*python_binary, "install", *TARGET, "--no-deps", pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -938,7 +959,7 @@ def test_install_no_install_argument_in_resulting_command(python_binary):
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, no_install=True)
|
||||
- expected = [*python_binary, "install", "--no-install", pkg]
|
||||
+ expected = [*python_binary, "install", *TARGET, "--no-install", pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -954,7 +975,7 @@ def test_install_proxy_argument_in_resulting_command(python_binary):
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
pip.install(pkg, proxy=proxy)
|
||||
- expected = [*python_binary, "install", "--proxy", proxy, pkg]
|
||||
+ expected = [*python_binary, "install", "--proxy", proxy, *TARGET, pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -981,7 +1002,7 @@ def test_install_proxy_false_argument_in_resulting_command(python_binary):
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
with patch.dict(pip.__opts__, config_mock):
|
||||
pip.install(pkg, proxy=proxy)
|
||||
- expected = [*python_binary, "install", pkg]
|
||||
+ expected = [*python_binary, "install", *TARGET, pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -1012,6 +1033,7 @@ def test_install_global_proxy_in_resulting_command(python_binary):
|
||||
"install",
|
||||
"--proxy",
|
||||
proxy,
|
||||
+ *TARGET,
|
||||
pkg,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
@@ -1032,6 +1054,7 @@ def test_install_multiple_requirements_arguments_in_resulting_command(python_bin
|
||||
expected = [*python_binary, "install"]
|
||||
for item in cached_reqs:
|
||||
expected.extend(["--requirement", item])
|
||||
+ expected.extend(TARGET)
|
||||
|
||||
# Passing option as a list
|
||||
mock = MagicMock(return_value={"retcode": 0, "stdout": ""})
|
||||
@@ -1068,6 +1091,7 @@ def test_install_multiple_requirements_arguments_in_resulting_command(python_bin
|
||||
"install",
|
||||
"--requirement",
|
||||
cached_reqs[0],
|
||||
+ *TARGET,
|
||||
]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
@@ -1088,6 +1112,7 @@ def test_install_extra_args_arguments_in_resulting_command(python_binary):
|
||||
expected = [
|
||||
*python_binary,
|
||||
"install",
|
||||
+ *TARGET,
|
||||
pkg,
|
||||
"--latest-pip-kwarg",
|
||||
"param",
|
||||
@@ -1604,7 +1629,7 @@ def test_install_pre_argument_in_resulting_command(python_binary):
|
||||
with patch.dict(pip.__salt__, {"cmd.run_all": mock}):
|
||||
with patch("salt.modules.pip.version", MagicMock(return_value="1.3")):
|
||||
pip.install(pkg, pre_releases=True)
|
||||
- expected = [*python_binary, "install", pkg]
|
||||
+ expected = [*python_binary, "install", *TARGET, pkg]
|
||||
mock.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
@@ -1620,7 +1645,7 @@ def test_install_pre_argument_in_resulting_command(python_binary):
|
||||
):
|
||||
with patch("salt.modules.pip._get_pip_bin", MagicMock(return_value=["pip"])):
|
||||
pip.install(pkg, pre_releases=True)
|
||||
- expected = ["pip", "install", "--pre", pkg]
|
||||
+ expected = ["pip", "install", *TARGET, "--pre", pkg]
|
||||
mock_run_all.assert_called_with(
|
||||
expected,
|
||||
saltenv="base",
|
||||
diff --git a/tests/pytests/unit/modules/test_transactional_update.py b/tests/pytests/unit/modules/test_transactional_update.py
|
||||
index dbd72fd74bf..e0ef2abd0f3 100644
|
||||
--- a/tests/pytests/unit/modules/test_transactional_update.py
|
||||
+++ b/tests/pytests/unit/modules/test_transactional_update.py
|
||||
@@ -1,3 +1,4 @@
|
||||
+import os
|
||||
import pytest
|
||||
|
||||
import salt.loader.context
|
||||
@@ -10,6 +11,10 @@ pytestmark = [
|
||||
pytest.mark.skip_on_windows(reason="Not supported on Windows"),
|
||||
]
|
||||
|
||||
+SALT_CALL_BINARY = "salt-call"
|
||||
+if os.environ.get('VIRTUAL_ENV'):
|
||||
+ SALT_CALL_BINARY = f"{os.environ.get('VIRTUAL_ENV')}/bin/salt-call"
|
||||
+
|
||||
|
||||
@pytest.fixture
|
||||
def configure_loader_modules():
|
||||
@@ -379,7 +384,7 @@ def test_call_fails_function():
|
||||
"--continue",
|
||||
"--quiet",
|
||||
"run",
|
||||
- "salt-call",
|
||||
+ SALT_CALL_BINARY,
|
||||
"--out",
|
||||
"json",
|
||||
"-l",
|
||||
@@ -411,7 +416,7 @@ def test_call_success_no_reboot():
|
||||
"--continue",
|
||||
"--quiet",
|
||||
"run",
|
||||
- "salt-call",
|
||||
+ SALT_CALL_BINARY,
|
||||
"--out",
|
||||
"json",
|
||||
"-l",
|
||||
@@ -454,7 +459,7 @@ def test_call_success_reboot():
|
||||
"--continue",
|
||||
"--quiet",
|
||||
"run",
|
||||
- "salt-call",
|
||||
+ SALT_CALL_BINARY,
|
||||
"--out",
|
||||
"json",
|
||||
"-l",
|
||||
@@ -488,7 +493,7 @@ def test_call_success_parameters():
|
||||
"--continue",
|
||||
"--quiet",
|
||||
"run",
|
||||
- "salt-call",
|
||||
+ SALT_CALL_BINARY,
|
||||
"--out",
|
||||
"json",
|
||||
"-l",
|
||||
diff --git a/tests/pytests/unit/states/test_pkgrepo.py b/tests/pytests/unit/states/test_pkgrepo.py
|
||||
index 5f540bd2454..14d17ad3f9f 100644
|
||||
--- a/tests/pytests/unit/states/test_pkgrepo.py
|
||||
+++ b/tests/pytests/unit/states/test_pkgrepo.py
|
||||
@@ -1,7 +1,6 @@
|
||||
"""
|
||||
:codeauthor: Tyler Johnson <tjohnson@saltstack.com>
|
||||
"""
|
||||
-
|
||||
import pytest
|
||||
|
||||
import salt.states.pkgrepo as pkgrepo
|
||||
@@ -390,7 +389,7 @@ def test_migrated_wrong_method():
|
||||
with patch.dict(pkgrepo.__grains__, grains), patch.dict(
|
||||
pkgrepo.__salt__, salt_mock
|
||||
):
|
||||
- assert pkgrepo.migrated("/mnt", method_="magic") == {
|
||||
+ assert pkgrepo.migrated("/mnt", method="magic") == {
|
||||
"name": "/mnt",
|
||||
"result": False,
|
||||
"changes": {},
|
||||
diff --git a/tests/pytests/unit/test_fileserver.py b/tests/pytests/unit/test_fileserver.py
|
||||
index 8dd3ea0a27d..49be3967dc4 100644
|
||||
--- a/tests/pytests/unit/test_fileserver.py
|
||||
+++ b/tests/pytests/unit/test_fileserver.py
|
||||
@@ -75,9 +75,7 @@ def test_file_server_url_escape(tmp_path):
|
||||
opts = {
|
||||
"fileserver_backend": ["roots"],
|
||||
"extension_modules": "",
|
||||
- "optimization_order": [
|
||||
- 0,
|
||||
- ],
|
||||
+ "optimization_order": [0, 1],
|
||||
"file_roots": {
|
||||
"base": [fileroot],
|
||||
},
|
||||
@@ -102,9 +100,7 @@ def test_file_server_serve_url_escape(tmp_path):
|
||||
opts = {
|
||||
"fileserver_backend": ["roots"],
|
||||
"extension_modules": "",
|
||||
- "optimization_order": [
|
||||
- 0,
|
||||
- ],
|
||||
+ "optimization_order": [0, 1],
|
||||
"file_roots": {
|
||||
"base": [fileroot],
|
||||
},
|
||||
diff --git a/tests/pytests/unit/utils/test_gitfs.py b/tests/pytests/unit/utils/test_gitfs.py
|
||||
index 2bf627049f9..bd7d74cb2b2 100644
|
||||
--- a/tests/pytests/unit/utils/test_gitfs.py
|
||||
+++ b/tests/pytests/unit/utils/test_gitfs.py
|
||||
@@ -3,6 +3,7 @@ import time
|
||||
|
||||
import pytest
|
||||
|
||||
+import salt.config
|
||||
import salt.fileserver.gitfs
|
||||
import salt.utils.gitfs
|
||||
from salt.exceptions import FileserverConfigError
|
||||
@@ -24,6 +25,23 @@ if HAS_PYGIT2:
|
||||
import pygit2
|
||||
|
||||
|
||||
+@pytest.fixture
|
||||
+def minion_opts(tmp_path):
|
||||
+ """
|
||||
+ Default minion configuration with relative temporary paths to not require root permissions.
|
||||
+ """
|
||||
+ root_dir = tmp_path / "minion"
|
||||
+ opts = salt.config.DEFAULT_MINION_OPTS.copy()
|
||||
+ opts["__role"] = "minion"
|
||||
+ opts["root_dir"] = str(root_dir)
|
||||
+ for name in ("cachedir", "pki_dir", "sock_dir", "conf_dir"):
|
||||
+ dirpath = root_dir / name
|
||||
+ dirpath.mkdir(parents=True)
|
||||
+ opts[name] = str(dirpath)
|
||||
+ opts["log_file"] = "logs/minion.log"
|
||||
+ return opts
|
||||
+
|
||||
+
|
||||
@pytest.mark.parametrize(
|
||||
"role_name,role_class",
|
||||
(
|
||||
diff --git a/tests/pytests/unit/utils/test_msgpack.py b/tests/pytests/unit/utils/test_msgpack.py
|
||||
index a09b6e5b8b1..3d0b9d7fc8c 100644
|
||||
--- a/tests/pytests/unit/utils/test_msgpack.py
|
||||
+++ b/tests/pytests/unit/utils/test_msgpack.py
|
||||
@@ -3,7 +3,7 @@ import pytest
|
||||
import salt.utils.msgpack
|
||||
from tests.support.mock import MagicMock, patch
|
||||
|
||||
-
|
||||
+@pytest.mark.skipif(salt.utils.msgpack.version < (1, 0, 0), reason="Test requires msgpack version >= 1.0.0")
|
||||
def test_load_encoding(tmp_path):
|
||||
"""
|
||||
test when using msgpack version >= 1.0.0 we
|
||||
diff --git a/tests/pytests/unit/utils/test_pycrypto.py b/tests/pytests/unit/utils/test_pycrypto.py
|
||||
index 693ad10e240..9e0b58d1b35 100644
|
||||
--- a/tests/pytests/unit/utils/test_pycrypto.py
|
||||
+++ b/tests/pytests/unit/utils/test_pycrypto.py
|
||||
@@ -57,21 +57,20 @@ def test_gen_hash_crypt(algorithm, expected):
|
||||
"""
|
||||
Test gen_hash with crypt library
|
||||
"""
|
||||
- with patch("salt.utils.pycrypto.methods", {}):
|
||||
- ret = salt.utils.pycrypto.gen_hash(
|
||||
- crypt_salt=expected["salt"], password=passwd, algorithm=algorithm
|
||||
- )
|
||||
- assert ret == expected["hashed"]
|
||||
+ ret = salt.utils.pycrypto.gen_hash(
|
||||
+ crypt_salt=expected["salt"], password=passwd, algorithm=algorithm
|
||||
+ )
|
||||
+ assert ret == expected["hashed"]
|
||||
|
||||
- ret = salt.utils.pycrypto.gen_hash(
|
||||
- crypt_salt=expected["badsalt"], password=passwd, algorithm=algorithm
|
||||
- )
|
||||
- assert ret != expected["hashed"]
|
||||
+ ret = salt.utils.pycrypto.gen_hash(
|
||||
+ crypt_salt=expected["badsalt"], password=passwd, algorithm=algorithm
|
||||
+ )
|
||||
+ assert ret != expected["hashed"]
|
||||
|
||||
- ret = salt.utils.pycrypto.gen_hash(
|
||||
- crypt_salt=None, password=passwd, algorithm=algorithm
|
||||
- )
|
||||
- assert ret != expected["hashed"]
|
||||
+ ret = salt.utils.pycrypto.gen_hash(
|
||||
+ crypt_salt=None, password=passwd, algorithm=algorithm
|
||||
+ )
|
||||
+ assert ret != expected["hashed"]
|
||||
|
||||
|
||||
@pytest.mark.skipif(not salt.utils.pycrypto.HAS_CRYPT, reason="crypt not available")
|
||||
diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py
|
||||
index 5cc58c273d0..6995b01c892 100644
|
||||
--- a/tests/unit/test_config.py
|
||||
+++ b/tests/unit/test_config.py
|
||||
@@ -83,9 +83,12 @@ class SampleConfTest(DefaultConfigsBase, TestCase):
|
||||
"""
|
||||
master_config = SAMPLE_CONF_DIR + "master"
|
||||
ret = salt.config._read_conf_file(master_config)
|
||||
+ # openSUSE modified the default config in
|
||||
+ # https://github.com/opensuse/salt/commit/6ffbf7fcc178f32c670b177b25ed64658c59f1bf
|
||||
+ expected_config = {"user": "salt", "syndic_user": "salt"}
|
||||
self.assertEqual(
|
||||
ret,
|
||||
- {},
|
||||
+ expected_config,
|
||||
"Sample config file '{}' must be commented out.".format(master_config),
|
||||
)
|
||||
|
||||
@@ -347,7 +350,10 @@ class ConfigTestCase(TestCase, AdaptedConfigurationTestCaseMixin):
|
||||
|
||||
with patched_environ(SALT_MINION_CONFIG=env_fpath):
|
||||
# Should load from env variable, not the default configuration file
|
||||
- config = salt.config.minion_config("{}/minion".format(CONFIG_DIR))
|
||||
+ # Override defaults from venv-minion conf
|
||||
+ defaults = salt.config.DEFAULT_MINION_OPTS.copy()
|
||||
+ defaults["default_include"] = ""
|
||||
+ config = salt.config.minion_config("{}/minion".format(CONFIG_DIR), defaults=defaults)
|
||||
self.assertEqual(config["log_file"], env_fpath)
|
||||
|
||||
root_dir = os.path.join(tempdir, "foo", "bar")
|
||||
@@ -1946,6 +1952,11 @@ class APIConfigTestCase(DefaultConfigsBase, TestCase):
|
||||
if salt.utils.platform.is_windows():
|
||||
expected = "{}\\var\\log\\salt\\api".format(RUNTIME_VARS.TMP_ROOT_DIR)
|
||||
|
||||
+ if os.environ.get("VIRTUAL_ENV"):
|
||||
+ # venv bundle configures --salt-logs-dir=%{_localstatedir}/log
|
||||
+ # in the RPM spec file
|
||||
+ expected = expected.replace("/salt/api", "/api")
|
||||
+
|
||||
ret = salt.config.api_config("/some/fake/path")
|
||||
self.assertEqual(ret["log_file"], expected)
|
||||
|
||||
@@ -2017,6 +2028,11 @@ class APIConfigTestCase(DefaultConfigsBase, TestCase):
|
||||
mock_pid = "c:\\mock\\root\\var\\run\\salt-api.pid"
|
||||
mock_master_config["root_dir"] = "c:\\mock\\root"
|
||||
|
||||
+ if os.environ.get("VIRTUAL_ENV"):
|
||||
+ # venv bundle configures --salt-logs-dir=%{_localstatedir}/log
|
||||
+ # in the RPM spec file
|
||||
+ mock_log = mock_log.replace("/salt", "")
|
||||
+
|
||||
with patch(
|
||||
"salt.config.client_config", MagicMock(return_value=mock_master_config)
|
||||
):
|
||||
diff --git a/tests/unit/utils/test_sdb.py b/tests/unit/utils/test_sdb.py
|
||||
index 87886cbc521..69cbda07beb 100644
|
||||
--- a/tests/unit/utils/test_sdb.py
|
||||
+++ b/tests/unit/utils/test_sdb.py
|
||||
@@ -49,7 +49,7 @@ class SdbTestCase(TestCase, LoaderModuleMockMixin):
|
||||
# test with SQLite database write and read
|
||||
|
||||
def test_sqlite_get_found(self):
|
||||
- expected = {b"name": b"testone", b"number": 46}
|
||||
+ expected = {"name": "testone", "number": 46}
|
||||
sdb.sdb_set("sdb://test_sdb_data/test1", expected, self.sdb_opts)
|
||||
resp = sdb.sdb_get("sdb://test_sdb_data/test1", self.sdb_opts)
|
||||
self.assertEqual(resp, expected)
|
||||
diff --git a/tests/unit/utils/test_templates.py b/tests/unit/utils/test_templates.py
|
||||
index 264b4ae801d..604395f5e08 100644
|
||||
--- a/tests/unit/utils/test_templates.py
|
||||
+++ b/tests/unit/utils/test_templates.py
|
||||
@@ -1,6 +1,7 @@
|
||||
"""
|
||||
Unit tests for salt.utils.templates.py
|
||||
"""
|
||||
+
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
@@ -22,6 +23,20 @@ try:
|
||||
except ImportError:
|
||||
HAS_CHEETAH = False
|
||||
|
||||
+try:
|
||||
+ import genshi as _
|
||||
+
|
||||
+ HAS_GENSHI = True
|
||||
+except ImportError:
|
||||
+ HAS_GENSHI = False
|
||||
+
|
||||
+try:
|
||||
+ import mako as _
|
||||
+
|
||||
+ HAS_MAKO = True
|
||||
+except ImportError:
|
||||
+ HAS_MAKO = False
|
||||
+
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -83,16 +98,19 @@ class RenderTestCase(TestCase):
|
||||
assert res == expected
|
||||
|
||||
### Tests for mako template
|
||||
+ @pytest.mark.skipif(not HAS_MAKO, reason="Mako module not available for testing")
|
||||
def test_render_mako_sanity(self):
|
||||
tmpl = """OK"""
|
||||
res = salt.utils.templates.render_mako_tmpl(tmpl, dict(self.context))
|
||||
self.assertEqual(res, "OK")
|
||||
|
||||
+ @pytest.mark.skipif(not HAS_MAKO, reason="Mako module not available for testing")
|
||||
def test_render_mako_evaluate(self):
|
||||
tmpl = """${ "OK" }"""
|
||||
res = salt.utils.templates.render_mako_tmpl(tmpl, dict(self.context))
|
||||
self.assertEqual(res, "OK")
|
||||
|
||||
+ @pytest.mark.skipif(not HAS_MAKO, reason="Mako module not available for testing")
|
||||
def test_render_mako_evaluate_multi(self):
|
||||
tmpl = """
|
||||
% if 1:
|
||||
@@ -103,6 +121,7 @@ class RenderTestCase(TestCase):
|
||||
stripped = res.strip()
|
||||
self.assertEqual(stripped, "OK")
|
||||
|
||||
+ @pytest.mark.skipif(not HAS_MAKO, reason="Mako module not available for testing")
|
||||
def test_render_mako_variable(self):
|
||||
tmpl = """${ var }"""
|
||||
|
||||
@@ -152,21 +171,33 @@ class RenderTestCase(TestCase):
|
||||
self.assertEqual(res, "OK")
|
||||
|
||||
### Tests for genshi template (xml-based)
|
||||
+ @pytest.mark.skipif(
|
||||
+ not HAS_GENSHI, reason="Genshi module not available for testing"
|
||||
+ )
|
||||
def test_render_genshi_sanity(self):
|
||||
tmpl = """<RU>OK</RU>"""
|
||||
res = salt.utils.templates.render_genshi_tmpl(tmpl, dict(self.context))
|
||||
self.assertEqual(res, "<RU>OK</RU>")
|
||||
|
||||
+ @pytest.mark.skipif(
|
||||
+ not HAS_GENSHI, reason="Genshi module not available for testing"
|
||||
+ )
|
||||
def test_render_genshi_evaluate(self):
|
||||
tmpl = """<RU>${ "OK" }</RU>"""
|
||||
res = salt.utils.templates.render_genshi_tmpl(tmpl, dict(self.context))
|
||||
self.assertEqual(res, "<RU>OK</RU>")
|
||||
|
||||
+ @pytest.mark.skipif(
|
||||
+ not HAS_GENSHI, reason="Genshi module not available for testing"
|
||||
+ )
|
||||
def test_render_genshi_evaluate_condition(self):
|
||||
tmpl = """<RU xmlns:py="http://genshi.edgewall.org/" py:if="1">OK</RU>"""
|
||||
res = salt.utils.templates.render_genshi_tmpl(tmpl, dict(self.context))
|
||||
self.assertEqual(res, "<RU>OK</RU>")
|
||||
|
||||
+ @pytest.mark.skipif(
|
||||
+ not HAS_GENSHI, reason="Genshi module not available for testing"
|
||||
+ )
|
||||
def test_render_genshi_variable(self):
|
||||
tmpl = """<RU>$var</RU>"""
|
||||
|
||||
@@ -175,6 +206,9 @@ class RenderTestCase(TestCase):
|
||||
res = salt.utils.templates.render_genshi_tmpl(tmpl, ctx)
|
||||
self.assertEqual(res, "<RU>OK</RU>")
|
||||
|
||||
+ @pytest.mark.skipif(
|
||||
+ not HAS_GENSHI, reason="Genshi module not available for testing"
|
||||
+ )
|
||||
def test_render_genshi_variable_replace(self):
|
||||
tmpl = """<RU xmlns:py="http://genshi.edgewall.org/" py:content="var">not ok</RU>"""
|
||||
|
||||
--
|
||||
2.46.0
|
||||
|
10
salt.changes
10
salt.changes
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 7 09:45:18 UTC 2024 - Marek Czernek <marek.czernek@suse.com>
|
||||
|
||||
- Fix few failing tests to work with both Salt and Salt bundle
|
||||
- Skip testing unsupported OpenSSL crypto algorithms
|
||||
|
||||
- Added:
|
||||
* make-tests-compatible-with-venv-bundle.patch
|
||||
* skip-more-tests-related-to-old-openssl-algorithms.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 24 10:12:25 UTC 2024 - Pablo Suárez Hernández <pablo.suarezhernandez@suse.com>
|
||||
|
||||
|
@ -410,6 +410,11 @@ Patch124: some-more-small-tests-fixes-enhancements-661.patch
|
||||
Patch125: test_vultrpy-adjust-test-expectation-to-prevent-fail.patch
|
||||
# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/66698
|
||||
Patch126: firewalld-normalize-new-rich-rules-before-comparing-.patch
|
||||
# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/669
|
||||
Patch127: skip-more-tests-related-to-old-openssl-algorithms.patch
|
||||
# PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/662
|
||||
# PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/66730
|
||||
Patch128: make-tests-compatible-with-venv-bundle.patch
|
||||
|
||||
### IMPORTANT: The line below is used as a snippet marker. Do not touch it.
|
||||
### SALT PATCHES LIST END
|
||||
|
97
skip-more-tests-related-to-old-openssl-algorithms.patch
Normal file
97
skip-more-tests-related-to-old-openssl-algorithms.patch
Normal file
@ -0,0 +1,97 @@
|
||||
From 63ff8ce775eec43b2f768b72fba4154c7832b1f7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Yeray=20Guti=C3=A9rrez=20Cedr=C3=A9s?=
|
||||
<yeray.gutierrez@suse.com>
|
||||
Date: Wed, 7 Aug 2024 08:54:24 +0100
|
||||
Subject: [PATCH] Skip more tests related to old OpenSSL algorithms
|
||||
|
||||
* Skip more tests related to old OpenSSL algorithms
|
||||
|
||||
* Check the comment from state apply ret instead of exception
|
||||
|
||||
---------
|
||||
|
||||
Co-authored-by: vzhestkov <vzhestkov@suse.com>
|
||||
---
|
||||
tests/pytests/functional/modules/test_x509_v2.py | 10 ++++++++--
|
||||
tests/pytests/functional/states/test_x509_v2.py | 9 +++++++++
|
||||
2 files changed, 17 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tests/pytests/functional/modules/test_x509_v2.py b/tests/pytests/functional/modules/test_x509_v2.py
|
||||
index c060ad2971c..2e8152d04a3 100644
|
||||
--- a/tests/pytests/functional/modules/test_x509_v2.py
|
||||
+++ b/tests/pytests/functional/modules/test_x509_v2.py
|
||||
@@ -1400,7 +1400,10 @@ def test_create_csr_raw(x509, rsa_privkey):
|
||||
@pytest.mark.slow_test
|
||||
@pytest.mark.parametrize("algo", ["rsa", "ec", "ed25519", "ed448"])
|
||||
def test_create_private_key(x509, algo):
|
||||
- res = x509.create_private_key(algo=algo)
|
||||
+ try:
|
||||
+ res = x509.create_private_key(algo=algo)
|
||||
+ except UnsupportedAlgorithm:
|
||||
+ pytest.skip(f"Algorithm '{algo}' is not supported on this OpenSSL version")
|
||||
assert res.startswith("-----BEGIN PRIVATE KEY-----")
|
||||
|
||||
|
||||
@@ -1408,7 +1411,10 @@ def test_create_private_key(x509, algo):
|
||||
@pytest.mark.parametrize("algo", ["rsa", "ec", "ed25519", "ed448"])
|
||||
def test_create_private_key_with_passphrase(x509, algo):
|
||||
passphrase = "hunter2"
|
||||
- res = x509.create_private_key(algo=algo, passphrase=passphrase)
|
||||
+ try:
|
||||
+ res = x509.create_private_key(algo=algo, passphrase=passphrase)
|
||||
+ except UnsupportedAlgorithm:
|
||||
+ pytest.skip(f"Algorithm '{algo}' is not supported on this OpenSSL version")
|
||||
assert res.startswith("-----BEGIN ENCRYPTED PRIVATE KEY-----")
|
||||
# ensure it can be loaded
|
||||
x509.get_private_key_size(res, passphrase=passphrase)
|
||||
diff --git a/tests/pytests/functional/states/test_x509_v2.py b/tests/pytests/functional/states/test_x509_v2.py
|
||||
index e74bdd73f37..929be014cdb 100644
|
||||
--- a/tests/pytests/functional/states/test_x509_v2.py
|
||||
+++ b/tests/pytests/functional/states/test_x509_v2.py
|
||||
@@ -6,6 +6,7 @@ import pytest
|
||||
try:
|
||||
import cryptography
|
||||
import cryptography.x509 as cx509
|
||||
+ from cryptography.exceptions import UnsupportedAlgorithm
|
||||
from cryptography.hazmat.primitives import hashes
|
||||
from cryptography.hazmat.primitives.asymmetric import ec, ed448, ed25519, rsa
|
||||
from cryptography.hazmat.primitives.serialization import (
|
||||
@@ -691,6 +692,8 @@ def existing_csr_exts(x509, csr_args, csr_args_exts, ca_key, rsa_privkey, reques
|
||||
def existing_pk(x509, pk_args, request):
|
||||
pk_args.update(request.param)
|
||||
ret = x509.private_key_managed(**pk_args)
|
||||
+ if ret.result == False and "UnsupportedAlgorithm" in ret.comment:
|
||||
+ pytest.skip(f"Algorithm '{pk_args['algo']}' is not supported on this OpenSSL version")
|
||||
_assert_pk_basic(
|
||||
ret,
|
||||
pk_args.get("algo", "rsa"),
|
||||
@@ -2140,6 +2143,8 @@ def test_private_key_managed(x509, pk_args, algo, encoding, passphrase):
|
||||
pk_args["encoding"] = encoding
|
||||
pk_args["passphrase"] = passphrase
|
||||
ret = x509.private_key_managed(**pk_args)
|
||||
+ if ret.result == False and "UnsupportedAlgorithm" in ret.comment:
|
||||
+ pytest.skip(f"Algorithm '{algo}' is not supported on this OpenSSL version")
|
||||
_assert_pk_basic(ret, algo, encoding, passphrase)
|
||||
|
||||
|
||||
@@ -2167,6 +2172,8 @@ def test_private_key_managed_keysize(x509, pk_args, algo, keysize):
|
||||
)
|
||||
def test_private_key_managed_existing(x509, pk_args):
|
||||
ret = x509.private_key_managed(**pk_args)
|
||||
+ if ret.result == False and "UnsupportedAlgorithm" in ret.comment:
|
||||
+ pytest.skip(f"Algorithm '{pk_args['algo']}' is not supported on this OpenSSL version")
|
||||
_assert_not_changed(ret)
|
||||
|
||||
|
||||
@@ -2194,6 +2201,8 @@ def test_private_key_managed_existing_new_with_passphrase_change(x509, pk_args):
|
||||
def test_private_key_managed_algo_change(x509, pk_args):
|
||||
pk_args["algo"] = "ed25519"
|
||||
ret = x509.private_key_managed(**pk_args)
|
||||
+ if ret.result == False and "UnsupportedAlgorithm" in ret.comment:
|
||||
+ pytest.skip("Algorithm 'ed25519' is not supported on this OpenSSL version")
|
||||
_assert_pk_basic(ret, "ed25519")
|
||||
|
||||
|
||||
--
|
||||
2.46.0
|
||||
|
Loading…
Reference in New Issue
Block a user