Migrate tests/integration/ssh/test_master.py to pytest

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
Pedro Algarvio 2022-08-26 15:45:12 +01:00 committed by Gareth J. Greenaway
parent c57a2772c8
commit 3d4dc9f274
3 changed files with 80 additions and 91 deletions

View file

@ -198,6 +198,7 @@ salt/(client/ssh/.+|cli/ssh\.py):
- pytests.integration.ssh.test_grains
- integration.ssh.test_jinja_filters
- pytests.integration.ssh.test_mine
- pytests.integration.ssh.test_master
- pytests.integration.ssh.test_pillar
- pytests.integration.ssh.test_raw
- integration.ssh.test_state

View file

@ -1,91 +0,0 @@
"""
Simple Smoke Tests for Connected SSH minions
"""
import pytest
from saltfactories.utils.tempfiles import temp_file
from tests.support.case import SSHCase
from tests.support.helpers import requires_system_grains
from tests.support.runtests import RUNTIME_VARS
class SSHMasterTestCase(SSHCase):
"""
Test ssh master functionality
"""
@pytest.mark.slow_test
def test_can_it_ping(self):
"""
Ensure the proxy can ping
"""
ret = self.run_function("test.ping")
self.assertEqual(ret, True)
@requires_system_grains
@pytest.mark.slow_test
@pytest.mark.skip_if_not_root
def test_service(self, grains):
service = "cron"
os_family = grains["os_family"]
os_release = grains["osrelease"]
if os_family == "RedHat":
service = "crond"
elif os_family == "Arch":
service = "sshd"
elif os_family == "MacOS":
service = "org.ntp.ntpd"
if int(os_release.split(".")[1]) >= 13:
service = "com.apple.AirPlayXPCHelper"
self.run_function("service.enable", [service])
ret = self.run_function("service.get_all")
self.assertIn(service, ret)
self.run_function("service.stop", [service])
ret = self.run_function("service.status", [service])
self.assertFalse(ret)
self.run_function("service.start", [service])
ret = self.run_function("service.status", [service])
self.assertTrue(ret)
@pytest.mark.slow_test
def test_state_apply(self):
core_state = """
{}/testfile:
file:
- managed
- source: salt://testfile
- makedirs: true
""".format(
RUNTIME_VARS.TMP
)
with temp_file("core.sls", core_state, RUNTIME_VARS.TMP_BASEENV_STATE_TREE):
ret = self.run_function("state.apply", ["core"])
for key, value in ret.items():
self.assertTrue(value["result"])
@pytest.mark.slow_test
def test_state_highstate(self):
top_sls = """
base:
'*':
- core
"""
core_state = """
{}/testfile:
file:
- managed
- source: salt://testfile
- makedirs: true
""".format(
RUNTIME_VARS.TMP
)
with temp_file(
"top.sls", top_sls, RUNTIME_VARS.TMP_BASEENV_STATE_TREE
), temp_file("core.sls", core_state, RUNTIME_VARS.TMP_BASEENV_STATE_TREE):
ret = self.run_function("state.highstate")
for key, value in ret.items():
self.assertTrue(value["result"])

View file

@ -0,0 +1,79 @@
"""
Simple Smoke Tests for Connected SSH minions
"""
import pytest
from saltfactories.utils.functional import StateResult
pytestmark = [
pytest.mark.slow_test,
pytest.mark.skip_on_windows(reason="salt-ssh not available on Windows"),
]
@pytest.mark.skip_if_not_root
def test_service(salt_ssh_cli, grains):
service = "cron"
os_family = grains["os_family"]
os_release = grains["osrelease"]
if os_family == "RedHat":
service = "crond"
elif os_family == "Arch":
service = "sshd"
elif os_family == "MacOS":
service = "org.ntp.ntpd"
if int(os_release.split(".")[1]) >= 13:
service = "com.apple.AirPlayXPCHelper"
ret = salt_ssh_cli.run("service.enable", service)
assert ret.returncode == 0
ret = salt_ssh_cli.run("service.get_all")
assert ret.returncode == 0
assert service in ret.data
ret = salt_ssh_cli.run("service.stop", service)
assert ret.returncode == 0
ret = salt_ssh_cli.run("service.status", service)
assert ret.returncode == 0
assert not ret.data
ret = salt_ssh_cli.run("service.start", service)
assert ret.returncode == 0
ret = salt_ssh_cli.run("service.status", service)
assert ret.returncode == 0
assert ret.data
@pytest.fixture
def _state_tree(salt_master, tmp_path):
top_sls = """
base:
'*':
- core
"""
core_state = """
{}/testfile:
file:
- managed
- source: salt://testfile
- makedirs: true
""".format(
tmp_path
)
with salt_master.state_tree.base.temp_file(
"top.sls", top_sls
), salt_master.state_tree.base.temp_file("core.sls", core_state):
yield
@pytest.mark.usefixtures("_state_tree")
def test_state_apply(salt_ssh_cli):
ret = salt_ssh_cli.run("state.apply", "core")
assert ret.returncode == 0
state_result = StateResult(ret.data)
assert state_result.result is True
@pytest.mark.usefixtures("_state_tree")
def test_state_highstate(salt_ssh_cli):
ret = salt_ssh_cli.run("state.highstate")
assert ret.returncode == 0
state_result = StateResult(ret.data)
assert state_result.result is True