mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Skip tests which can't run, or even pass on FIPS enabled platforms
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
parent
c5db6bf766
commit
066afb90f0
46 changed files with 168 additions and 60 deletions
|
@ -698,7 +698,8 @@ allowed-3rd-party-modules=msgpack,
|
||||||
ptscripts,
|
ptscripts,
|
||||||
packaging,
|
packaging,
|
||||||
looseversion,
|
looseversion,
|
||||||
pytestskipmarkers
|
pytestskipmarkers,
|
||||||
|
cryptography
|
||||||
|
|
||||||
[EXCEPTIONS]
|
[EXCEPTIONS]
|
||||||
|
|
||||||
|
|
|
@ -198,22 +198,20 @@ More complete example for MySQL (to also show configuration)
|
||||||
with_lists: [1,3]
|
with_lists: [1,3]
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import abc # Added in python2.6 so always available
|
import abc
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from salt.utils.dictupdate import update
|
from salt.utils.dictupdate import update
|
||||||
from salt.utils.odict import OrderedDict
|
from salt.utils.odict import OrderedDict
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
# Please don't strip redundant parentheses from this file.
|
# Please don't strip redundant parentheses from this file.
|
||||||
# I have added some for clarity.
|
# I have added some for clarity.
|
||||||
|
|
||||||
# tests/unit/pillar/mysql_test.py may help understand this code.
|
# tests/unit/pillar/mysql_test.py may help understand this code.
|
||||||
|
|
||||||
|
|
||||||
# Set up logging
|
|
||||||
log = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
# This ext_pillar is abstract and cannot be used directory
|
# This ext_pillar is abstract and cannot be used directory
|
||||||
def __virtual__():
|
def __virtual__():
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
"""
|
"""
|
||||||
Integration tests for DigitalOcean APIv2
|
Integration tests for DigitalOcean APIv2
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
import salt.crypt
|
import salt.crypt
|
||||||
import salt.utils.stringutils
|
import salt.utils.stringutils
|
||||||
from tests.integration.cloud.helpers.cloud_test_base import TIMEOUT, CloudTest
|
from tests.integration.cloud.helpers.cloud_test_base import TIMEOUT, CloudTest
|
||||||
|
@ -43,6 +44,7 @@ class DigitalOceanTest(CloudTest):
|
||||||
_list_sizes = self.run_cloud("--list-sizes {}".format(self.PROVIDER))
|
_list_sizes = self.run_cloud("--list-sizes {}".format(self.PROVIDER))
|
||||||
self.assertIn("16gb", [i.strip() for i in _list_sizes])
|
self.assertIn("16gb", [i.strip() for i in _list_sizes])
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_key_management(self):
|
def test_key_management(self):
|
||||||
"""
|
"""
|
||||||
Test key management
|
Test key management
|
||||||
|
|
|
@ -43,13 +43,10 @@ class VenafiTest(ShellCase):
|
||||||
|
|
||||||
@with_random_name
|
@with_random_name
|
||||||
@pytest.mark.slow_test
|
@pytest.mark.slow_test
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_request(self, name):
|
def test_request(self, name):
|
||||||
cn = "{}.example.com".format(name)
|
cn = "{}.example.com".format(name)
|
||||||
|
|
||||||
# Provide python27 compatibility
|
|
||||||
if not isinstance(cn, str):
|
|
||||||
cn = cn.decode()
|
|
||||||
|
|
||||||
ret = self.run_run_plus(
|
ret = self.run_run_plus(
|
||||||
fun="venafi.request",
|
fun="venafi.request",
|
||||||
minion_id=cn,
|
minion_id=cn,
|
||||||
|
@ -126,10 +123,6 @@ xlAKgaU6i03jOm5+sww5L2YVMi1eeBN+kx7o94ogpRemC/EUidvl1PUJ6+e7an9V
|
||||||
csr_path = f.name
|
csr_path = f.name
|
||||||
cn = "test-csr-32313131.venafi.example.com"
|
cn = "test-csr-32313131.venafi.example.com"
|
||||||
|
|
||||||
# Provide python27 compatibility
|
|
||||||
if not isinstance(cn, str):
|
|
||||||
cn = cn.decode()
|
|
||||||
|
|
||||||
ret = self.run_run_plus(
|
ret = self.run_run_plus(
|
||||||
fun="venafi.request", minion_id=cn, csr_path=csr_path, zone="fake"
|
fun="venafi.request", minion_id=cn, csr_path=csr_path, zone="fake"
|
||||||
)
|
)
|
||||||
|
|
|
@ -106,6 +106,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
|
|
||||||
self._check_extracted(self.untar_file)
|
self._check_extracted(self.untar_file)
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_archive_extracted_with_source_hash(self):
|
def test_archive_extracted_with_source_hash(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted without skip_verify
|
test archive.extracted without skip_verify
|
||||||
|
@ -127,6 +128,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
self._check_extracted(self.untar_file)
|
self._check_extracted(self.untar_file)
|
||||||
|
|
||||||
@pytest.mark.skip_if_not_root
|
@pytest.mark.skip_if_not_root
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_archive_extracted_with_root_user_and_group(self):
|
def test_archive_extracted_with_root_user_and_group(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted with user and group set to "root"
|
test archive.extracted with user and group set to "root"
|
||||||
|
@ -151,6 +153,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
self._check_extracted(self.untar_file)
|
self._check_extracted(self.untar_file)
|
||||||
|
|
||||||
@pytest.mark.slow_test
|
@pytest.mark.slow_test
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_archive_extracted_with_strip_in_options(self):
|
def test_archive_extracted_with_strip_in_options(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted with --strip in options
|
test archive.extracted with --strip in options
|
||||||
|
@ -170,6 +173,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
|
|
||||||
self._check_extracted(os.path.join(ARCHIVE_DIR, "README"))
|
self._check_extracted(os.path.join(ARCHIVE_DIR, "README"))
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_archive_extracted_with_strip_components_in_options(self):
|
def test_archive_extracted_with_strip_components_in_options(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted with --strip-components in options
|
test archive.extracted with --strip-components in options
|
||||||
|
@ -190,6 +194,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
self._check_extracted(os.path.join(ARCHIVE_DIR, "README"))
|
self._check_extracted(os.path.join(ARCHIVE_DIR, "README"))
|
||||||
|
|
||||||
@pytest.mark.slow_test
|
@pytest.mark.slow_test
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_archive_extracted_without_archive_format(self):
|
def test_archive_extracted_without_archive_format(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted with no archive_format option
|
test archive.extracted with no archive_format option
|
||||||
|
@ -206,6 +211,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
|
|
||||||
self._check_extracted(self.untar_file)
|
self._check_extracted(self.untar_file)
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_archive_extracted_with_cmd_unzip_false(self):
|
def test_archive_extracted_with_cmd_unzip_false(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted using use_cmd_unzip argument as false
|
test archive.extracted using use_cmd_unzip argument as false
|
||||||
|
@ -240,6 +246,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
|
|
||||||
self._check_extracted(self.untar_file)
|
self._check_extracted(self.untar_file)
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_local_archive_extracted_skip_verify(self):
|
def test_local_archive_extracted_skip_verify(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted with local file, bad hash and skip_verify
|
test archive.extracted with local file, bad hash and skip_verify
|
||||||
|
@ -258,6 +265,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
self._check_extracted(self.untar_file)
|
self._check_extracted(self.untar_file)
|
||||||
|
|
||||||
@pytest.mark.slow_test
|
@pytest.mark.slow_test
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_local_archive_extracted_with_source_hash(self):
|
def test_local_archive_extracted_with_source_hash(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted with local file and valid hash
|
test archive.extracted with local file and valid hash
|
||||||
|
@ -275,6 +283,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
self._check_extracted(self.untar_file)
|
self._check_extracted(self.untar_file)
|
||||||
|
|
||||||
@pytest.mark.slow_test
|
@pytest.mark.slow_test
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_local_archive_extracted_with_bad_source_hash(self):
|
def test_local_archive_extracted_with_bad_source_hash(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted with local file and bad hash
|
test archive.extracted with local file and bad hash
|
||||||
|
@ -289,6 +298,7 @@ class ArchiveTest(ModuleCase, SaltReturnAssertsMixin):
|
||||||
|
|
||||||
self.assertSaltFalseReturn(ret)
|
self.assertSaltFalseReturn(ret)
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_local_archive_extracted_with_uppercase_source_hash(self):
|
def test_local_archive_extracted_with_uppercase_source_hash(self):
|
||||||
"""
|
"""
|
||||||
test archive.extracted with local file and bad hash
|
test archive.extracted with local file and bad hash
|
||||||
|
|
|
@ -14,6 +14,7 @@ docker = pytest.importorskip("docker")
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
pytest.mark.slow_test,
|
pytest.mark.slow_test,
|
||||||
pytest.mark.skip_if_binaries_missing("dockerd"),
|
pytest.mark.skip_if_binaries_missing("dockerd"),
|
||||||
]
|
]
|
||||||
|
|
|
@ -6,6 +6,7 @@ import os
|
||||||
|
|
||||||
import attr
|
import attr
|
||||||
import pytest
|
import pytest
|
||||||
|
from pytestskipmarkers.utils import platform
|
||||||
|
|
||||||
import salt.utils.files
|
import salt.utils.files
|
||||||
import salt.utils.path
|
import salt.utils.path
|
||||||
|
@ -932,7 +933,11 @@ def _filter_id(value):
|
||||||
ids=_filter_id,
|
ids=_filter_id,
|
||||||
)
|
)
|
||||||
def filter(request):
|
def filter(request):
|
||||||
return request.param
|
_filter = request.param
|
||||||
|
if platform.is_fips_enabled():
|
||||||
|
if _filter.name in ("md5", "random_hash"):
|
||||||
|
pytest.skip("Test cannot run on a FIPS enabled platform")
|
||||||
|
return _filter
|
||||||
|
|
||||||
|
|
||||||
def test_filter(state, state_tree, filter, grains):
|
def test_filter(state, state_tree, filter, grains):
|
||||||
|
|
|
@ -19,6 +19,7 @@ pytestmark = [
|
||||||
pytest.mark.skipif(
|
pytest.mark.skipif(
|
||||||
mysqlmod.MySQLdb is None, reason="No python mysql client installed."
|
mysqlmod.MySQLdb is None, reason="No python mysql client installed."
|
||||||
),
|
),
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,8 @@ except ImportError:
|
||||||
CRYPTOGRAPHY_VERSION = tuple(int(x) for x in cryptography.__version__.split("."))
|
CRYPTOGRAPHY_VERSION = tuple(int(x) for x in cryptography.__version__.split("."))
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
pytest.mark.skipif(HAS_LIBS is False, reason="Needs cryptography library")
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
pytest.mark.skipif(HAS_LIBS is False, reason="Needs cryptography library"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import base64
|
import base64
|
||||||
from pathlib import Path
|
import pathlib
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ CRYPTOGRAPHY_VERSION = tuple(int(x) for x in cryptography.__version__.split(".")
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
pytest.mark.slow_test,
|
pytest.mark.slow_test,
|
||||||
pytest.mark.skipif(HAS_LIBS is False, reason="Needs cryptography library"),
|
pytest.mark.skipif(HAS_LIBS is False, reason="Needs cryptography library"),
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -703,7 +704,7 @@ def existing_pk(x509, pk_args, request):
|
||||||
@pytest.fixture(params=["existing_cert"])
|
@pytest.fixture(params=["existing_cert"])
|
||||||
def existing_symlink(request):
|
def existing_symlink(request):
|
||||||
existing = request.getfixturevalue(request.param)
|
existing = request.getfixturevalue(request.param)
|
||||||
test_file = Path(existing).with_name("symlink")
|
test_file = pathlib.Path(existing).with_name("symlink")
|
||||||
test_file.symlink_to(existing)
|
test_file.symlink_to(existing)
|
||||||
yield test_file
|
yield test_file
|
||||||
# cleanup is done by tmp_path
|
# cleanup is done by tmp_path
|
||||||
|
@ -884,7 +885,7 @@ def test_certificate_managed_test_true(x509, cert_args, rsa_privkey, ca_key):
|
||||||
ret = x509.certificate_managed(**cert_args)
|
ret = x509.certificate_managed(**cert_args)
|
||||||
assert ret.result is None
|
assert ret.result is None
|
||||||
assert ret.changes
|
assert ret.changes
|
||||||
assert not Path(cert_args["name"]).exists()
|
assert not pathlib.Path(cert_args["name"]).exists()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("existing_cert")
|
@pytest.mark.usefixtures("existing_cert")
|
||||||
|
@ -1324,7 +1325,7 @@ def test_certificate_managed_file_managed_create_false(
|
||||||
ret = x509.certificate_managed(**cert_args)
|
ret = x509.certificate_managed(**cert_args)
|
||||||
assert ret.result is True
|
assert ret.result is True
|
||||||
assert not ret.changes
|
assert not ret.changes
|
||||||
assert not Path(cert_args["name"]).exists()
|
assert not pathlib.Path(cert_args["name"]).exists()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("existing_cert")
|
@pytest.mark.usefixtures("existing_cert")
|
||||||
|
@ -1397,7 +1398,7 @@ def test_certificate_managed_follow_symlinks(
|
||||||
"""
|
"""
|
||||||
cert_args["name"] = str(existing_symlink)
|
cert_args["name"] = str(existing_symlink)
|
||||||
cert_args["encoding"] = encoding
|
cert_args["encoding"] = encoding
|
||||||
assert Path(cert_args["name"]).is_symlink()
|
assert pathlib.Path(cert_args["name"]).is_symlink()
|
||||||
cert_args["follow_symlinks"] = follow
|
cert_args["follow_symlinks"] = follow
|
||||||
ret = x509.certificate_managed(**cert_args)
|
ret = x509.certificate_managed(**cert_args)
|
||||||
assert bool(ret.changes) == (not follow)
|
assert bool(ret.changes) == (not follow)
|
||||||
|
@ -1417,13 +1418,13 @@ def test_certificate_managed_follow_symlinks_changes(
|
||||||
the checking of the existing file is performed by the x509 module
|
the checking of the existing file is performed by the x509 module
|
||||||
"""
|
"""
|
||||||
cert_args["name"] = str(existing_symlink)
|
cert_args["name"] = str(existing_symlink)
|
||||||
assert Path(cert_args["name"]).is_symlink()
|
assert pathlib.Path(cert_args["name"]).is_symlink()
|
||||||
cert_args["follow_symlinks"] = follow
|
cert_args["follow_symlinks"] = follow
|
||||||
cert_args["encoding"] = encoding
|
cert_args["encoding"] = encoding
|
||||||
cert_args["CN"] = "new"
|
cert_args["CN"] = "new"
|
||||||
ret = x509.certificate_managed(**cert_args)
|
ret = x509.certificate_managed(**cert_args)
|
||||||
assert ret.changes
|
assert ret.changes
|
||||||
assert Path(ret.name).is_symlink() == follow
|
assert pathlib.Path(ret.name).is_symlink() == follow
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("encoding", ["pem", "der"])
|
@pytest.mark.parametrize("encoding", ["pem", "der"])
|
||||||
|
@ -1436,7 +1437,7 @@ def test_certificate_managed_file_managed_error(
|
||||||
cert_args["private_key"] = rsa_privkey
|
cert_args["private_key"] = rsa_privkey
|
||||||
cert_args["makedirs"] = False
|
cert_args["makedirs"] = False
|
||||||
cert_args["encoding"] = encoding
|
cert_args["encoding"] = encoding
|
||||||
cert_args["name"] = str(Path(cert_args["name"]).parent / "missing" / "cert")
|
cert_args["name"] = str(pathlib.Path(cert_args["name"]).parent / "missing" / "cert")
|
||||||
ret = x509.certificate_managed(**cert_args)
|
ret = x509.certificate_managed(**cert_args)
|
||||||
assert ret.result is False
|
assert ret.result is False
|
||||||
assert "Could not create file, see file.managed output" in ret.comment
|
assert "Could not create file, see file.managed output" in ret.comment
|
||||||
|
@ -1504,7 +1505,7 @@ def test_crl_managed_test_true(x509, crl_args, crl_revoked):
|
||||||
assert ret.result is None
|
assert ret.result is None
|
||||||
assert ret.changes
|
assert ret.changes
|
||||||
assert ret.result is None
|
assert ret.result is None
|
||||||
assert not Path(crl_args["name"]).exists()
|
assert not pathlib.Path(crl_args["name"]).exists()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("existing_crl")
|
@pytest.mark.usefixtures("existing_crl")
|
||||||
|
@ -1708,7 +1709,7 @@ def test_crl_managed_file_managed_create_false(x509, crl_args):
|
||||||
ret = x509.crl_managed(**crl_args)
|
ret = x509.crl_managed(**crl_args)
|
||||||
assert ret.result is True
|
assert ret.result is True
|
||||||
assert not ret.changes
|
assert not ret.changes
|
||||||
assert not Path(crl_args["name"]).exists()
|
assert not pathlib.Path(crl_args["name"]).exists()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("existing_crl")
|
@pytest.mark.usefixtures("existing_crl")
|
||||||
|
@ -1782,7 +1783,7 @@ def test_crl_managed_follow_symlinks(
|
||||||
"""
|
"""
|
||||||
crl_args["name"] = str(existing_symlink)
|
crl_args["name"] = str(existing_symlink)
|
||||||
crl_args["encoding"] = encoding
|
crl_args["encoding"] = encoding
|
||||||
assert Path(crl_args["name"]).is_symlink()
|
assert pathlib.Path(crl_args["name"]).is_symlink()
|
||||||
crl_args["follow_symlinks"] = follow
|
crl_args["follow_symlinks"] = follow
|
||||||
ret = x509.crl_managed(**crl_args)
|
ret = x509.crl_managed(**crl_args)
|
||||||
assert bool(ret.changes) == (not follow)
|
assert bool(ret.changes) == (not follow)
|
||||||
|
@ -1802,13 +1803,13 @@ def test_crl_managed_follow_symlinks_changes(
|
||||||
the checking of the existing file is performed by the x509 module
|
the checking of the existing file is performed by the x509 module
|
||||||
"""
|
"""
|
||||||
crl_args["name"] = str(existing_symlink)
|
crl_args["name"] = str(existing_symlink)
|
||||||
assert Path(crl_args["name"]).is_symlink()
|
assert pathlib.Path(crl_args["name"]).is_symlink()
|
||||||
crl_args["follow_symlinks"] = follow
|
crl_args["follow_symlinks"] = follow
|
||||||
crl_args["encoding"] = encoding
|
crl_args["encoding"] = encoding
|
||||||
crl_args["revoked"] = crl_revoked
|
crl_args["revoked"] = crl_revoked
|
||||||
ret = x509.crl_managed(**crl_args)
|
ret = x509.crl_managed(**crl_args)
|
||||||
assert ret.changes
|
assert ret.changes
|
||||||
assert Path(ret.name).is_symlink() == follow
|
assert pathlib.Path(ret.name).is_symlink() == follow
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("encoding", ["pem", "der"])
|
@pytest.mark.parametrize("encoding", ["pem", "der"])
|
||||||
|
@ -1818,7 +1819,7 @@ def test_crl_managed_file_managed_error(x509, crl_args, encoding):
|
||||||
"""
|
"""
|
||||||
crl_args["makedirs"] = False
|
crl_args["makedirs"] = False
|
||||||
crl_args["encoding"] = encoding
|
crl_args["encoding"] = encoding
|
||||||
crl_args["name"] = str(Path(crl_args["name"]).parent / "missing" / "crl")
|
crl_args["name"] = str(pathlib.Path(crl_args["name"]).parent / "missing" / "crl")
|
||||||
ret = x509.crl_managed(**crl_args)
|
ret = x509.crl_managed(**crl_args)
|
||||||
assert ret.result is False
|
assert ret.result is False
|
||||||
assert "Could not create file, see file.managed output" in ret.comment
|
assert "Could not create file, see file.managed output" in ret.comment
|
||||||
|
@ -1866,7 +1867,7 @@ def test_csr_managed_test_true(x509, csr_args, rsa_privkey):
|
||||||
ret = x509.csr_managed(**csr_args)
|
ret = x509.csr_managed(**csr_args)
|
||||||
assert ret.result is None
|
assert ret.result is None
|
||||||
assert ret.changes
|
assert ret.changes
|
||||||
assert not Path(csr_args["name"]).exists()
|
assert not pathlib.Path(csr_args["name"]).exists()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("existing_csr")
|
@pytest.mark.usefixtures("existing_csr")
|
||||||
|
@ -2002,7 +2003,7 @@ def test_csr_managed_file_managed_create_false(x509, csr_args):
|
||||||
ret = x509.csr_managed(**csr_args)
|
ret = x509.csr_managed(**csr_args)
|
||||||
assert ret.result is True
|
assert ret.result is True
|
||||||
assert not ret.changes
|
assert not ret.changes
|
||||||
assert not Path(csr_args["name"]).exists()
|
assert not pathlib.Path(csr_args["name"]).exists()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("existing_csr")
|
@pytest.mark.usefixtures("existing_csr")
|
||||||
|
@ -2066,12 +2067,12 @@ def test_csr_managed_follow_symlinks(
|
||||||
the checking of the existing file is performed by the x509 module
|
the checking of the existing file is performed by the x509 module
|
||||||
"""
|
"""
|
||||||
csr_args["name"] = str(existing_symlink)
|
csr_args["name"] = str(existing_symlink)
|
||||||
assert Path(csr_args["name"]).is_symlink()
|
assert pathlib.Path(csr_args["name"]).is_symlink()
|
||||||
csr_args["follow_symlinks"] = follow
|
csr_args["follow_symlinks"] = follow
|
||||||
csr_args["encoding"] = encoding
|
csr_args["encoding"] = encoding
|
||||||
ret = x509.csr_managed(**csr_args)
|
ret = x509.csr_managed(**csr_args)
|
||||||
assert bool(ret.changes) == (not follow)
|
assert bool(ret.changes) == (not follow)
|
||||||
assert Path(ret.name).is_symlink() == follow
|
assert pathlib.Path(ret.name).is_symlink() == follow
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
|
@ -2088,14 +2089,14 @@ def test_csr_managed_follow_symlinks_changes(
|
||||||
the checking of the existing file is performed by the x509 module
|
the checking of the existing file is performed by the x509 module
|
||||||
"""
|
"""
|
||||||
csr_args["name"] = str(existing_symlink)
|
csr_args["name"] = str(existing_symlink)
|
||||||
assert Path(csr_args["name"]).is_symlink()
|
assert pathlib.Path(csr_args["name"]).is_symlink()
|
||||||
csr_args["follow_symlinks"] = follow
|
csr_args["follow_symlinks"] = follow
|
||||||
csr_args["encoding"] = encoding
|
csr_args["encoding"] = encoding
|
||||||
csr_args["CN"] = "new"
|
csr_args["CN"] = "new"
|
||||||
ret = x509.csr_managed(**csr_args)
|
ret = x509.csr_managed(**csr_args)
|
||||||
assert ret.result
|
assert ret.result
|
||||||
assert ret.changes
|
assert ret.changes
|
||||||
assert Path(ret.name).is_symlink() == follow
|
assert pathlib.Path(ret.name).is_symlink() == follow
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("encoding", ["pem", "der"])
|
@pytest.mark.parametrize("encoding", ["pem", "der"])
|
||||||
|
@ -2105,7 +2106,7 @@ def test_csr_managed_file_managed_error(x509, csr_args, encoding):
|
||||||
"""
|
"""
|
||||||
csr_args["makedirs"] = False
|
csr_args["makedirs"] = False
|
||||||
csr_args["encoding"] = encoding
|
csr_args["encoding"] = encoding
|
||||||
csr_args["name"] = str(Path(csr_args["name"]).parent / "missing" / "csr")
|
csr_args["name"] = str(pathlib.Path(csr_args["name"]).parent / "missing" / "csr")
|
||||||
ret = x509.csr_managed(**csr_args)
|
ret = x509.csr_managed(**csr_args)
|
||||||
assert ret.result is False
|
assert ret.result is False
|
||||||
assert "Could not create file, see file.managed output" in ret.comment
|
assert "Could not create file, see file.managed output" in ret.comment
|
||||||
|
@ -2312,7 +2313,7 @@ def test_private_key_managed_file_managed_create_false(x509, pk_args):
|
||||||
ret = x509.private_key_managed(**pk_args)
|
ret = x509.private_key_managed(**pk_args)
|
||||||
assert ret.result is True
|
assert ret.result is True
|
||||||
assert not ret.changes
|
assert not ret.changes
|
||||||
assert not Path(pk_args["name"]).exists()
|
assert not pathlib.Path(pk_args["name"]).exists()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("existing_pk")
|
@pytest.mark.usefixtures("existing_pk")
|
||||||
|
@ -2361,7 +2362,7 @@ def test_private_key_managed_follow_symlinks(
|
||||||
"""
|
"""
|
||||||
pk_args["name"] = str(existing_symlink)
|
pk_args["name"] = str(existing_symlink)
|
||||||
pk_args["encoding"] = encoding
|
pk_args["encoding"] = encoding
|
||||||
assert Path(pk_args["name"]).is_symlink()
|
assert pathlib.Path(pk_args["name"]).is_symlink()
|
||||||
pk_args["follow_symlinks"] = follow
|
pk_args["follow_symlinks"] = follow
|
||||||
ret = x509.private_key_managed(**pk_args)
|
ret = x509.private_key_managed(**pk_args)
|
||||||
assert bool(ret.changes) == (not follow)
|
assert bool(ret.changes) == (not follow)
|
||||||
|
@ -2381,13 +2382,13 @@ def test_private_key_managed_follow_symlinks_changes(
|
||||||
the checking of the existing file is performed by the x509 module
|
the checking of the existing file is performed by the x509 module
|
||||||
"""
|
"""
|
||||||
pk_args["name"] = str(existing_symlink)
|
pk_args["name"] = str(existing_symlink)
|
||||||
assert Path(pk_args["name"]).is_symlink()
|
assert pathlib.Path(pk_args["name"]).is_symlink()
|
||||||
pk_args["follow_symlinks"] = follow
|
pk_args["follow_symlinks"] = follow
|
||||||
pk_args["encoding"] = encoding
|
pk_args["encoding"] = encoding
|
||||||
pk_args["algo"] = "ec"
|
pk_args["algo"] = "ec"
|
||||||
ret = x509.private_key_managed(**pk_args)
|
ret = x509.private_key_managed(**pk_args)
|
||||||
assert ret.changes
|
assert ret.changes
|
||||||
assert Path(ret.name).is_symlink() == follow
|
assert pathlib.Path(ret.name).is_symlink() == follow
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("existing_pk")
|
@pytest.mark.usefixtures("existing_pk")
|
||||||
|
@ -2415,7 +2416,7 @@ def test_private_key_managed_file_managed_error(x509, pk_args, encoding):
|
||||||
"""
|
"""
|
||||||
pk_args["makedirs"] = False
|
pk_args["makedirs"] = False
|
||||||
pk_args["encoding"] = encoding
|
pk_args["encoding"] = encoding
|
||||||
pk_args["name"] = str(Path(pk_args["name"]).parent / "missing" / "pk")
|
pk_args["name"] = str(pathlib.Path(pk_args["name"]).parent / "missing" / "pk")
|
||||||
ret = x509.private_key_managed(**pk_args)
|
ret = x509.private_key_managed(**pk_args)
|
||||||
assert ret.result is False
|
assert ret.result is False
|
||||||
assert "Could not create file, see file.managed output" in ret.comment
|
assert "Could not create file, see file.managed output" in ret.comment
|
||||||
|
@ -2693,7 +2694,7 @@ def _assert_cert_basic(
|
||||||
|
|
||||||
def _get_cert(cert, encoding="pem", passphrase=None):
|
def _get_cert(cert, encoding="pem", passphrase=None):
|
||||||
try:
|
try:
|
||||||
p = Path(cert)
|
p = pathlib.Path(cert)
|
||||||
if p.exists():
|
if p.exists():
|
||||||
cert = p.read_bytes()
|
cert = p.read_bytes()
|
||||||
except Exception: # pylint: disable=broad-except
|
except Exception: # pylint: disable=broad-except
|
||||||
|
@ -2775,7 +2776,7 @@ def _assert_not_changed(ret):
|
||||||
|
|
||||||
def _get_crl(crl, encoding="pem"):
|
def _get_crl(crl, encoding="pem"):
|
||||||
try:
|
try:
|
||||||
p = Path(crl)
|
p = pathlib.Path(crl)
|
||||||
if p.exists():
|
if p.exists():
|
||||||
crl = p.read_bytes()
|
crl = p.read_bytes()
|
||||||
except Exception: # pylint: disable=broad-except
|
except Exception: # pylint: disable=broad-except
|
||||||
|
@ -2793,7 +2794,7 @@ def _get_crl(crl, encoding="pem"):
|
||||||
|
|
||||||
def _get_csr(csr, encoding="pem"):
|
def _get_csr(csr, encoding="pem"):
|
||||||
try:
|
try:
|
||||||
p = Path(csr)
|
p = pathlib.Path(csr)
|
||||||
if p.exists():
|
if p.exists():
|
||||||
csr = p.read_bytes()
|
csr = p.read_bytes()
|
||||||
except Exception: # pylint: disable=broad-except
|
except Exception: # pylint: disable=broad-except
|
||||||
|
@ -2811,7 +2812,7 @@ def _get_csr(csr, encoding="pem"):
|
||||||
|
|
||||||
def _get_privkey(pk, encoding="pem", passphrase=None):
|
def _get_privkey(pk, encoding="pem", passphrase=None):
|
||||||
try:
|
try:
|
||||||
p = Path(pk)
|
p = pathlib.Path(pk)
|
||||||
if p.exists():
|
if p.exists():
|
||||||
pk = p.read_bytes()
|
pk = p.read_bytes()
|
||||||
except Exception: # pylint: disable=broad-except
|
except Exception: # pylint: disable=broad-except
|
||||||
|
|
|
@ -13,9 +13,10 @@ log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
pytest.mark.skip_on_spawning_platform(
|
pytest.mark.skip_on_spawning_platform(
|
||||||
reason="These tests are currently broken on spawning platforms. Need to be rewritten.",
|
reason="These tests are currently broken on spawning platforms. Need to be rewritten.",
|
||||||
)
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ pytestmark = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_tcp_load_balancer_server(master_opts, io_loop):
|
def test_tcp_load_balancer_server(master_opts, io_loop):
|
||||||
|
|
||||||
messages = []
|
messages = []
|
||||||
|
|
|
@ -12,6 +12,7 @@ log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
pytest.mark.skip_on_freebsd(reason="Temporarily skipped on FreeBSD."),
|
pytest.mark.skip_on_freebsd(reason="Temporarily skipped on FreeBSD."),
|
||||||
pytest.mark.skip_on_spawning_platform(
|
pytest.mark.skip_on_spawning_platform(
|
||||||
reason="These tests are currently broken on spawning platforms. Need to be rewritten.",
|
reason="These tests are currently broken on spawning platforms. Need to be rewritten.",
|
||||||
|
|
|
@ -44,6 +44,7 @@ def file_add_delete_sls(testfile_path, base_env_state_tree_root_dir):
|
||||||
yield sls_name
|
yield sls_name
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
@pytest.mark.skip_on_darwin(reason="MacOS is a spawning platform, won't work")
|
@pytest.mark.skip_on_darwin(reason="MacOS is a spawning platform, won't work")
|
||||||
@pytest.mark.flaky(max_runs=4)
|
@pytest.mark.flaky(max_runs=4)
|
||||||
def test_memory_leak(salt_cli, salt_minion, file_add_delete_sls):
|
def test_memory_leak(salt_cli, salt_minion, file_add_delete_sls):
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
from pytestskipmarkers.utils import platform
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
pytest.mark.slow_test,
|
pytest.mark.slow_test,
|
||||||
|
@ -6,6 +7,12 @@ pytestmark = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def _skip_on_fips_and_arm64(grains):
|
||||||
|
if platform.is_fips_enabled() and grains["cpuarch"] == "aarch64":
|
||||||
|
pytest.skip("Test cannot run on a FIPS enabled platform")
|
||||||
|
|
||||||
|
|
||||||
def test_saltcheck_run_test(salt_ssh_cli):
|
def test_saltcheck_run_test(salt_ssh_cli):
|
||||||
"""
|
"""
|
||||||
test saltcheck.run_test with salt-ssh
|
test saltcheck.run_test with salt-ssh
|
||||||
|
@ -23,6 +30,7 @@ def test_saltcheck_run_test(salt_ssh_cli):
|
||||||
assert ret.data["status"] == "Pass"
|
assert ret.data["status"] == "Pass"
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("_skip_on_fips_and_arm64")
|
||||||
def test_saltcheck_state(salt_ssh_cli):
|
def test_saltcheck_state(salt_ssh_cli):
|
||||||
"""
|
"""
|
||||||
saltcheck.run_state_tests
|
saltcheck.run_state_tests
|
||||||
|
|
|
@ -666,6 +666,7 @@ def test_privkey_new_with_prereq(x509_salt_call_cli, tmp_path):
|
||||||
assert not _belongs_to(cert_new, pk_cur)
|
assert not _belongs_to(cert_new, pk_cur)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
@pytest.mark.usefixtures("privkey_new_pkcs12")
|
@pytest.mark.usefixtures("privkey_new_pkcs12")
|
||||||
@pytest.mark.skipif(
|
@pytest.mark.skipif(
|
||||||
CRYPTOGRAPHY_VERSION[0] < 36,
|
CRYPTOGRAPHY_VERSION[0] < 36,
|
||||||
|
|
|
@ -126,6 +126,7 @@ def test_vm_config_merger():
|
||||||
assert expected == vm
|
assert expected == vm
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_cloud_run_profile_create_returns_boolean(master_config):
|
def test_cloud_run_profile_create_returns_boolean(master_config):
|
||||||
|
|
||||||
master_config["profiles"] = {"test_profile": {"provider": "test_provider:saltify"}}
|
master_config["profiles"] = {"test_profile": {"provider": "test_provider:saltify"}}
|
||||||
|
|
|
@ -99,6 +99,8 @@ def salt_cloud_config_file(salt_master_factory):
|
||||||
return os.path.join(salt_master_factory.config_dir, "cloud")
|
return os.path.join(salt_master_factory.config_dir, "cloud")
|
||||||
|
|
||||||
|
|
||||||
|
# The cloud map merge uses python's multiprocessing manager which authenticates using HMAC and MD5
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_cloud_map_merge_conf(salt_cloud_config_file, grains):
|
def test_cloud_map_merge_conf(salt_cloud_config_file, grains):
|
||||||
"""
|
"""
|
||||||
Ensure that nested values can be selectivly overridden in a map file
|
Ensure that nested values can be selectivly overridden in a map file
|
||||||
|
|
|
@ -61,6 +61,7 @@ def test_base64_decodestring(the_string, the_string_base64):
|
||||||
assert hashutil.base64_decodestring(the_string_base64) == the_string
|
assert hashutil.base64_decodestring(the_string_base64) == the_string
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_md5_digest(the_string, the_string_md5):
|
def test_md5_digest(the_string, the_string_md5):
|
||||||
assert hashutil.md5_digest(the_string) == the_string_md5
|
assert hashutil.md5_digest(the_string) == the_string_md5
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ import datetime
|
||||||
import re
|
import re
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
from pytestskipmarkers.utils import platform
|
||||||
|
|
||||||
import salt.modules.config as configmod
|
import salt.modules.config as configmod
|
||||||
import salt.modules.postgres as postgres
|
import salt.modules.postgres as postgres
|
||||||
|
@ -117,6 +118,8 @@ def idfn(val):
|
||||||
ids=idfn,
|
ids=idfn,
|
||||||
)
|
)
|
||||||
def test_verify_password(role, password, verifier, method, result):
|
def test_verify_password(role, password, verifier, method, result):
|
||||||
|
if platform.is_fips_enabled() and (method == "md5" or verifier == md5_pw):
|
||||||
|
pytest.skip("Test cannot run on a FIPS enabled platform")
|
||||||
assert postgres._verify_password(role, password, verifier, method) == result
|
assert postgres._verify_password(role, password, verifier, method) == result
|
||||||
|
|
||||||
|
|
||||||
|
@ -971,6 +974,7 @@ def test_user_update3():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_user_update_encrypted_passwd():
|
def test_user_update_encrypted_passwd():
|
||||||
with patch(
|
with patch(
|
||||||
"salt.modules.postgres._run_psql", Mock(return_value={"retcode": 0})
|
"salt.modules.postgres._run_psql", Mock(return_value={"retcode": 0})
|
||||||
|
@ -1226,6 +1230,7 @@ def test_create_extension_newerthan():
|
||||||
assert not postgres.create_extension("foo", ext_version="a", schema="b")
|
assert not postgres.create_extension("foo", ext_version="a", schema="b")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_encrypt_passwords():
|
def test_encrypt_passwords():
|
||||||
assert postgres._maybe_encrypt_password("foo", "bar", False) == "bar"
|
assert postgres._maybe_encrypt_password("foo", "bar", False) == "bar"
|
||||||
assert (
|
assert (
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
from pytestskipmarkers.utils import platform
|
||||||
|
|
||||||
import salt.modules.postgres as postgres
|
import salt.modules.postgres as postgres
|
||||||
import salt.states.postgres_group as postgres_group
|
import salt.states.postgres_group as postgres_group
|
||||||
|
@ -19,6 +20,8 @@ def fixture_db_args():
|
||||||
|
|
||||||
@pytest.fixture(name="md5_pw")
|
@pytest.fixture(name="md5_pw")
|
||||||
def fixture_md5_pw():
|
def fixture_md5_pw():
|
||||||
|
if platform.is_fips_enabled():
|
||||||
|
pytest.skip("Test cannot run on a FIPS enabled platform")
|
||||||
# 'md5' + md5('password' + 'groupname')
|
# 'md5' + md5('password' + 'groupname')
|
||||||
return "md58b14c378fab8ef0dc227f4e6d6787a87"
|
return "md58b14c378fab8ef0dc227f4e6d6787a87"
|
||||||
|
|
||||||
|
@ -79,6 +82,7 @@ def configure_loader_modules(mocks):
|
||||||
# ==========
|
# ==========
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_present_create_basic(mocks, db_args):
|
def test_present_create_basic(mocks, db_args):
|
||||||
assert postgres_group.present("groupname") == {
|
assert postgres_group.present("groupname") == {
|
||||||
"name": "groupname",
|
"name": "groupname",
|
||||||
|
@ -343,6 +347,7 @@ def test_present_update_md5_password(mocks, existing_group, md5_pw, db_args):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_present_update_error(mocks, existing_group):
|
def test_present_update_error(mocks, existing_group):
|
||||||
existing_group["password"] = "md500000000000000000000000000000000"
|
existing_group["password"] = "md500000000000000000000000000000000"
|
||||||
mocks["postgres.role_get"].return_value = existing_group
|
mocks["postgres.role_get"].return_value = existing_group
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
from pytestskipmarkers.utils import platform
|
||||||
|
|
||||||
import salt.modules.postgres as postgres
|
import salt.modules.postgres as postgres
|
||||||
import salt.states.postgres_user as postgres_user
|
import salt.states.postgres_user as postgres_user
|
||||||
|
@ -25,6 +26,8 @@ def fixture_db_args():
|
||||||
@pytest.fixture(name="md5_pw")
|
@pytest.fixture(name="md5_pw")
|
||||||
def fixture_md5_pw():
|
def fixture_md5_pw():
|
||||||
# 'md5' + md5('password' + 'username')
|
# 'md5' + md5('password' + 'username')
|
||||||
|
if platform.is_fips_enabled():
|
||||||
|
pytest.skip("Test cannot run on a FIPS enabled platform")
|
||||||
return "md55a231fcdb710d73268c4f44283487ba2"
|
return "md55a231fcdb710d73268c4f44283487ba2"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ log = logging.getLogger(__name__)
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
pytest.mark.slow_test,
|
pytest.mark.slow_test,
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ log = logging.getLogger(__name__)
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
pytest.mark.slow_test,
|
pytest.mark.slow_test,
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,6 @@ def minion_opts(tmp_path, minion_opts):
|
||||||
"file_roots": {"test": [str(tmp_path / "templates")]},
|
"file_roots": {"test": [str(tmp_path / "templates")]},
|
||||||
"pillar_roots": {"test": [str(tmp_path / "templates")]},
|
"pillar_roots": {"test": [str(tmp_path / "templates")]},
|
||||||
"fileserver_backend": ["roots"],
|
"fileserver_backend": ["roots"],
|
||||||
"hash_type": "md5",
|
|
||||||
"extension_modules": os.path.join(
|
"extension_modules": os.path.join(
|
||||||
os.path.dirname(os.path.abspath(__file__)), "extmods"
|
os.path.dirname(os.path.abspath(__file__)), "extmods"
|
||||||
),
|
),
|
||||||
|
@ -1041,6 +1040,7 @@ def test_method_call(minion_opts, local_salt):
|
||||||
assert rendered == "None"
|
assert rendered == "None"
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_md5(minion_opts, local_salt):
|
def test_md5(minion_opts, local_salt):
|
||||||
"""
|
"""
|
||||||
Test the `md5` Jinja filter.
|
Test the `md5` Jinja filter.
|
||||||
|
|
|
@ -61,7 +61,6 @@ def minion_opts(tmp_path, minion_opts):
|
||||||
"file_roots": {"test": [str(tmp_path / "files" / "test")]},
|
"file_roots": {"test": [str(tmp_path / "files" / "test")]},
|
||||||
"pillar_roots": {"test": [str(tmp_path / "files" / "test")]},
|
"pillar_roots": {"test": [str(tmp_path / "files" / "test")]},
|
||||||
"fileserver_backend": ["roots"],
|
"fileserver_backend": ["roots"],
|
||||||
"hash_type": "md5",
|
|
||||||
"extension_modules": os.path.join(
|
"extension_modules": os.path.join(
|
||||||
os.path.dirname(os.path.abspath(__file__)), "extmods"
|
os.path.dirname(os.path.abspath(__file__)), "extmods"
|
||||||
),
|
),
|
||||||
|
|
|
@ -3,6 +3,7 @@ import time
|
||||||
|
|
||||||
import attr
|
import attr
|
||||||
import pytest
|
import pytest
|
||||||
|
from pytestskipmarkers.utils import platform
|
||||||
from saltfactories.utils import random_string
|
from saltfactories.utils import random_string
|
||||||
|
|
||||||
# This `pytest.importorskip` here actually works because this module
|
# This `pytest.importorskip` here actually works because this module
|
||||||
|
@ -102,6 +103,10 @@ def mysql_image(request):
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest.fixture(scope="module")
|
||||||
def create_mysql_combo(mysql_image):
|
def create_mysql_combo(mysql_image):
|
||||||
|
if platform.is_fips_enabled():
|
||||||
|
if mysql_image.name in ("mysql-server", "percona") and mysql_image.tag == "8.0":
|
||||||
|
pytest.skip(f"These tests fail on {mysql_image.name}:{mysql_image.tag}")
|
||||||
|
|
||||||
return MySQLCombo(
|
return MySQLCombo(
|
||||||
mysql_name=mysql_image.name,
|
mysql_name=mysql_image.name,
|
||||||
mysql_version=mysql_image.tag,
|
mysql_version=mysql_image.tag,
|
||||||
|
|
|
@ -28,6 +28,10 @@ except ImportError:
|
||||||
# https://github.com/boto/boto/commit/33ac26b416fbb48a60602542b4ce15dcc7029f12
|
# https://github.com/boto/boto/commit/33ac26b416fbb48a60602542b4ce15dcc7029f12
|
||||||
REQUIRED_BOTO3_VERSION = "1.2.1"
|
REQUIRED_BOTO3_VERSION = "1.2.1"
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def __virtual__():
|
def __virtual__():
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -25,6 +25,10 @@ except ImportError:
|
||||||
# https://github.com/boto/boto/commit/33ac26b416fbb48a60602542b4ce15dcc7029f12
|
# https://github.com/boto/boto/commit/33ac26b416fbb48a60602542b4ce15dcc7029f12
|
||||||
REQUIRED_BOTO3_VERSION = "1.2.1"
|
REQUIRED_BOTO3_VERSION = "1.2.1"
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def __virtual__():
|
def __virtual__():
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -23,6 +23,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module
|
# pylint: enable=import-error,no-name-in-module
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module,unused-import
|
# pylint: enable=import-error,no-name-in-module,unused-import
|
||||||
|
|
||||||
# the boto_cloudtrail module relies on the connect_to_region() method
|
# the boto_cloudtrail module relies on the connect_to_region() method
|
||||||
|
|
|
@ -22,6 +22,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module,unused-import
|
# pylint: enable=import-error,no-name-in-module,unused-import
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module
|
# pylint: enable=import-error,no-name-in-module
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module
|
# pylint: enable=import-error,no-name-in-module
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module,unused-import
|
# pylint: enable=import-error,no-name-in-module,unused-import
|
||||||
|
|
||||||
# the boto_iot module relies on the connect_to_region() method
|
# the boto_iot module relies on the connect_to_region() method
|
||||||
|
|
|
@ -26,6 +26,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module
|
# pylint: enable=import-error,no-name-in-module
|
||||||
|
|
||||||
# the boto_lambda module relies on the connect_to_region() method
|
# the boto_lambda module relies on the connect_to_region() method
|
||||||
|
|
|
@ -22,6 +22,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module,unused-import
|
# pylint: enable=import-error,no-name-in-module,unused-import
|
||||||
|
|
||||||
# the boto_s3_bucket module relies on the connect_to_region() method
|
# the boto_s3_bucket module relies on the connect_to_region() method
|
||||||
|
|
|
@ -2,32 +2,27 @@
|
||||||
virt execution module unit tests
|
virt execution module unit tests
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# pylint: disable=3rd-party-module-not-gated
|
|
||||||
|
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
import salt.config
|
import salt.config
|
||||||
import salt.modules.config as config
|
import salt.modules.config as config
|
||||||
import salt.modules.virt as virt
|
import salt.modules.virt as virt
|
||||||
import salt.syspaths
|
import salt.syspaths
|
||||||
import salt.utils.yaml
|
import salt.utils.yaml
|
||||||
from salt.exceptions import CommandExecutionError, SaltInvocationError
|
from salt.exceptions import CommandExecutionError, SaltInvocationError
|
||||||
|
|
||||||
# pylint: disable=import-error
|
|
||||||
from tests.support.helpers import dedent
|
from tests.support.helpers import dedent
|
||||||
from tests.support.mixins import LoaderModuleMockMixin
|
from tests.support.mixins import LoaderModuleMockMixin
|
||||||
from tests.support.mock import MagicMock, patch
|
from tests.support.mock import MagicMock, patch
|
||||||
from tests.support.unit import TestCase
|
from tests.support.unit import TestCase
|
||||||
|
|
||||||
# pylint: disable=invalid-name,protected-access,attribute-defined-outside-init,too-many-public-methods,unused-argument
|
|
||||||
|
|
||||||
|
class LibvirtMock(MagicMock):
|
||||||
class LibvirtMock(MagicMock): # pylint: disable=too-many-ancestors
|
|
||||||
"""
|
"""
|
||||||
Libvirt library mock
|
Libvirt library mock
|
||||||
"""
|
"""
|
||||||
|
@ -1882,6 +1877,7 @@ class VirtTestCase(TestCase, LoaderModuleMockMixin):
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_init(self):
|
def test_init(self):
|
||||||
"""
|
"""
|
||||||
Test init() function
|
Test init() function
|
||||||
|
|
|
@ -20,12 +20,13 @@ from tests.support.runtests import RUNTIME_VARS
|
||||||
from tests.support.unit import TestCase
|
from tests.support.unit import TestCase
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
pytest.mark.skip_on_windows(
|
pytest.mark.skip_on_windows(
|
||||||
reason=(
|
reason=(
|
||||||
"Special steps are required for proper SSL validation because "
|
"Special steps are required for proper SSL validation because "
|
||||||
"`easy_install` is too old(and deprecated)."
|
"`easy_install` is too old(and deprecated)."
|
||||||
)
|
)
|
||||||
)
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
KNOWN_VIRTUALENV_BINARY_NAMES = (
|
KNOWN_VIRTUALENV_BINARY_NAMES = (
|
||||||
|
|
|
@ -28,6 +28,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module
|
# pylint: enable=import-error,no-name-in-module
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,10 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HAS_BOTO = False
|
HAS_BOTO = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
# pylint: enable=import-error,no-name-in-module
|
# pylint: enable=import-error,no-name-in-module
|
||||||
|
|
||||||
|
|
|
@ -11,12 +11,13 @@ from tests.support.runtests import RUNTIME_VARS
|
||||||
from tests.unit.modules.test_zcbuildout import KNOWN_VIRTUALENV_BINARY_NAMES, Base
|
from tests.unit.modules.test_zcbuildout import KNOWN_VIRTUALENV_BINARY_NAMES, Base
|
||||||
|
|
||||||
pytestmark = [
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
pytest.mark.skip_on_windows(
|
pytest.mark.skip_on_windows(
|
||||||
reason=(
|
reason=(
|
||||||
"Special steps are required for proper SSL validation because "
|
"Special steps are required for proper SSL validation because "
|
||||||
"`easy_install` is too old(and deprecated)."
|
"`easy_install` is too old(and deprecated)."
|
||||||
)
|
)
|
||||||
)
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,10 @@ except ImportError:
|
||||||
|
|
||||||
REQUIRED_BOTO3_VERSION = "1.2.1"
|
REQUIRED_BOTO3_VERSION = "1.2.1"
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif(HAS_BOTO3 is False, reason="The boto module must be installed.")
|
@pytest.mark.skipif(HAS_BOTO3 is False, reason="The boto module must be installed.")
|
||||||
@pytest.mark.skipif(
|
@pytest.mark.skipif(
|
||||||
|
|
|
@ -53,6 +53,11 @@ except ImportError:
|
||||||
return stub_function
|
return stub_function
|
||||||
|
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_on_fips_enabled_platform,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
required_boto_version = "2.0.0"
|
required_boto_version = "2.0.0"
|
||||||
required_boto3_version = "1.2.1"
|
required_boto3_version = "1.2.1"
|
||||||
region = "us-east-1"
|
region = "us-east-1"
|
||||||
|
|
|
@ -332,6 +332,7 @@ class TestPrintOption(TestCase):
|
||||||
option = salt.utils.find.PrintOption("print", "path user")
|
option = salt.utils.find.PrintOption("print", "path user")
|
||||||
self.assertEqual(option.requires(), salt.utils.find._REQUIRES_STAT)
|
self.assertEqual(option.requires(), salt.utils.find._REQUIRES_STAT)
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_print_option_execute(self):
|
def test_print_option_execute(self):
|
||||||
hello_file = os.path.join(self.tmpdir, "hello.txt")
|
hello_file = os.path.join(self.tmpdir, "hello.txt")
|
||||||
with salt.utils.files.fopen(hello_file, "w") as fp_:
|
with salt.utils.files.fopen(hello_file, "w") as fp_:
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
import salt.utils.hashutils
|
import salt.utils.hashutils
|
||||||
from tests.support.unit import TestCase
|
from tests.support.unit import TestCase
|
||||||
|
|
||||||
|
@ -87,6 +89,7 @@ class HashutilsTestCase(TestCase):
|
||||||
self.bytes,
|
self.bytes,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@pytest.mark.skip_on_fips_enabled_platform
|
||||||
def test_md5_digest(self):
|
def test_md5_digest(self):
|
||||||
"""
|
"""
|
||||||
Ensure that this function converts the value passed to bytes before
|
Ensure that this function converts the value passed to bytes before
|
||||||
|
|
Loading…
Add table
Reference in a new issue