mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00

- Fix thin dir unit tests after distro change revert - Skip any tests that require system python of 3.9 or higher
97 lines
2.5 KiB
Python
97 lines
2.5 KiB
Python
import shutil
|
|
|
|
import pytest
|
|
|
|
from tests.pytests.integration.ssh import check_system_python_version
|
|
|
|
pytestmark = [
|
|
pytest.mark.slow_test,
|
|
pytest.mark.skip_on_windows(reason="salt-ssh not available on Windows"),
|
|
pytest.mark.skipif(
|
|
not check_system_python_version(), reason="Needs system python >= 3.9"
|
|
),
|
|
]
|
|
|
|
|
|
@pytest.fixture(scope="module", autouse=True)
|
|
def pillar_tree(base_env_pillar_tree_root_dir):
|
|
top_file = """
|
|
base:
|
|
'localhost':
|
|
- mine
|
|
'127.0.0.1':
|
|
- mine
|
|
"""
|
|
mine_pillar_file = """
|
|
mine_functions:
|
|
disk.usage:
|
|
- c
|
|
"""
|
|
top_tempfile = pytest.helpers.temp_file(
|
|
"top.sls", top_file, base_env_pillar_tree_root_dir
|
|
)
|
|
mine_tempfile = pytest.helpers.temp_file(
|
|
"mine.sls", mine_pillar_file, base_env_pillar_tree_root_dir
|
|
)
|
|
|
|
with top_tempfile, mine_tempfile:
|
|
yield
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def thin_dir(salt_ssh_cli):
|
|
try:
|
|
yield
|
|
finally:
|
|
ret = salt_ssh_cli.run("config.get", "thin_dir")
|
|
assert ret.returncode == 0
|
|
thin_dir_path = ret.data
|
|
shutil.rmtree(thin_dir_path, ignore_errors=True)
|
|
|
|
|
|
def test_ssh_mine_get(salt_ssh_cli):
|
|
"""
|
|
test salt-ssh with mine
|
|
"""
|
|
ret = salt_ssh_cli.run("mine.get", "localhost", "test.arg")
|
|
assert ret.returncode == 0
|
|
assert ret.data
|
|
assert "localhost" in ret.data
|
|
assert "args" in ret.data["localhost"]
|
|
assert ret.data["localhost"]["args"] == ["itworked"]
|
|
|
|
|
|
@pytest.mark.parametrize("tgts", (("ssh",), ("regular",), ("ssh", "regular")))
|
|
def test_mine_get(salt_ssh_cli, salt_minion, tgts):
|
|
"""
|
|
Test mine returns with both regular and SSH minions
|
|
"""
|
|
if len(tgts) > 1:
|
|
tgt = "*"
|
|
exp = {"localhost", salt_minion.id}
|
|
else:
|
|
tgt = "localhost" if "ssh" in tgts else salt_minion.id
|
|
exp = {tgt}
|
|
ret = salt_ssh_cli.run(
|
|
"mine.get",
|
|
"*",
|
|
"test.ping",
|
|
ssh_minions="ssh" in tgts,
|
|
regular_minions="regular" in tgts,
|
|
)
|
|
assert ret.returncode == 0
|
|
assert ret.data
|
|
assert set(ret.data) == exp
|
|
for id_ in exp:
|
|
assert ret.data[id_] is True
|
|
|
|
|
|
def test_ssh_mine_get_error(salt_ssh_cli, caplog):
|
|
"""
|
|
Test that a mine function returning an error is not
|
|
included in the output.
|
|
"""
|
|
ret = salt_ssh_cli.run("mine.get", "localhost", "disk.usage")
|
|
assert ret.returncode == 0
|
|
assert not ret.data
|
|
assert "Error executing mine func disk.usage" in caplog.text
|