mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Migrate tests/integration/ssh/test_master.py
to pytest
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
parent
c57a2772c8
commit
3d4dc9f274
3 changed files with 80 additions and 91 deletions
|
@ -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
|
||||
|
|
|
@ -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"])
|
79
tests/pytests/integration/ssh/test_master.py
Normal file
79
tests/pytests/integration/ssh/test_master.py
Normal 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
|
Loading…
Add table
Reference in a new issue