/
githubmirror
/
salt
Обзор
Документация
Войти
/
githubmirror
/
salt
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/pytests/integration/ssh/state/test_retcode_render_exception.py
73 строки
2 KB
Daniel A. Wozniak
Improve salt-ssh relenv/thin parity and fix various regressions
05 апр 2026, 01:26
05 апр 2026, 01:26
a164b4e
Код
Авторство
О чём код?
""" Verify salt-ssh fails with a retcode > 0 when a state rendering fails. """ import pytest from salt.defaults.exitcodes import EX_AGGREGATE from tests.support.helpers import system_python_version pytestmark = [ pytest.mark.skip_on_windows(reason="salt-ssh not available on Windows"), pytest.mark.slow_test, pytest.mark.skipif( system_python_version() < (3, 10), reason="System python too old for these tests", ), ] @pytest.fixture(scope="module", autouse=True) def state_tree_render_fail(base_env_state_tree_root_dir): top_file = """ base: 'localhost': - fail_render '127.0.0.1': - fail_render """ state_file = r""" abc var is not defined {{ abc }}: test.nop """ top_tempfile = pytest.helpers.temp_file( "top.sls", top_file, base_env_state_tree_root_dir ) state_tempfile = pytest.helpers.temp_file( "fail_render.sls", state_file, base_env_state_tree_root_dir ) with top_tempfile, state_tempfile: yield @pytest.mark.parametrize( "args,retcode", ( (("state.sls", "fail_render"), EX_AGGREGATE), (("state.highstate",), EX_AGGREGATE), (("state.sls_id", "foo", "fail_render"), EX_AGGREGATE), (("state.show_sls", "fail_render"), EX_AGGREGATE), (("state.show_low_sls", "fail_render"), EX_AGGREGATE), (("state.show_highstate",), EX_AGGREGATE), # state.show_lowstate exits with 0 for non-ssh as well (("state.show_lowstate",), 0), (("state.top", "top.sls"), EX_AGGREGATE), ), ) def test_it(salt_ssh_cli_parameterized, args, retcode): ret = salt_ssh_cli_parameterized.run(*args) assert ret.returncode == retcode assert isinstance(ret.data, list) assert ret.data assert isinstance(ret.data[0], str) assert ret.data[0].startswith( "Rendering SLS 'base:fail_render' failed: Jinja variable 'abc' is undefined;" ) def test_state_single(salt_ssh_cli_parameterized): ret = salt_ssh_cli_parameterized.run("state.single", "file") assert ret.returncode == EX_AGGREGATE assert isinstance(ret.data, str) assert "TypeError encountered executing state.single" in ret.data assert "single() missing 1 required positional argument: 'name'" in ret.data