salt/tests/pytests/functional/modules/cmd/test_run_win.py
2025-03-06 13:45:16 -07:00

50 lines
1.3 KiB
Python

import pytest
pytestmark = [
pytest.mark.core_test,
pytest.mark.windows_whitelisted,
]
@pytest.fixture(scope="module")
def account():
with pytest.helpers.create_account() as _account:
yield _account
@pytest.mark.skip_unless_on_windows(reason="Minion is not Windows")
@pytest.mark.parametrize(
"exit_code, return_code, result",
[
(300, 0, True),
(299, 299, False),
],
)
def test_windows_script_exitcode(modules, state_tree, exit_code, return_code, result):
ret = modules.state.single(
"cmd.run", name=f"cmd.exe /c exit {exit_code}", success_retcodes=[2, 44, 300]
)
assert ret.result is result
assert ret.filtered["changes"]["retcode"] == return_code
@pytest.mark.skip_unless_on_windows(reason="Minion is not Windows")
@pytest.mark.parametrize(
"exit_code, return_code, result",
[
(300, 0, True),
(299, 299, False),
],
)
def test_windows_script_exitcode_runas(
modules, state_tree, exit_code, return_code, result, account
):
ret = modules.state.single(
"cmd.run",
name=f"cmd.exe /c exit {exit_code}",
success_retcodes=[2, 44, 300],
runas=account.username,
password=account.password,
)
assert ret.result is result
assert ret.filtered["changes"]["retcode"] == return_code