98 lines
2.6 KiB
Python
98 lines
2.6 KiB
Python
"""Unit tests: template_builtin"""
|
|
|
|
# these values are also testing the handling of bizarre characters
|
|
LOCAL_CLASS = "builtin_Test+@-!^Class"
|
|
LOCAL_SYSTEM = "builtin_Test+@-!^System"
|
|
LOCAL_HOST = "builtin_Test+@-!^Host"
|
|
LOCAL_USER = "builtin_Test+@-!^User"
|
|
LOCAL_DISTRO = "builtin_Test+@-!^Distro"
|
|
TEMPLATE = f'''
|
|
start of template
|
|
builtin class = >YADM_CLASS<
|
|
builtin os = >YADM_OS<
|
|
builtin host = >YADM_HOSTNAME<
|
|
builtin user = >YADM_USER<
|
|
builtin distro = >YADM_DISTRO<
|
|
YADM_IF CLASS="wrongclass1"
|
|
wrong class 1
|
|
YADM_END
|
|
YADM_IF CLASS="{LOCAL_CLASS}"
|
|
Included section for class = YADM_CLASS (YADM_CLASS repeated)
|
|
YADM_END
|
|
YADM_IF CLASS="wrongclass2"
|
|
wrong class 2
|
|
YADM_END
|
|
YADM_IF OS="wrongos1"
|
|
wrong os 1
|
|
YADM_END
|
|
YADM_IF OS="{LOCAL_SYSTEM}"
|
|
Included section for os = YADM_OS (YADM_OS repeated)
|
|
YADM_END
|
|
YADM_IF OS="wrongos2"
|
|
wrong os 2
|
|
YADM_END
|
|
YADM_IF HOSTNAME="wronghost1"
|
|
wrong host 1
|
|
YADM_END
|
|
YADM_IF HOSTNAME="{LOCAL_HOST}"
|
|
Included section for host = YADM_HOSTNAME (YADM_HOSTNAME repeated)
|
|
YADM_END
|
|
YADM_IF HOSTNAME="wronghost2"
|
|
wrong host 2
|
|
YADM_END
|
|
YADM_IF USER="wronguser1"
|
|
wrong user 1
|
|
YADM_END
|
|
YADM_IF USER="{LOCAL_USER}"
|
|
Included section for user = YADM_USER (YADM_USER repeated)
|
|
YADM_END
|
|
YADM_IF USER="wronguser2"
|
|
wrong user 2
|
|
YADM_END
|
|
YADM_IF DISTRO="wrongdistro1"
|
|
wrong distro 1
|
|
YADM_END
|
|
YADM_IF DISTRO="{LOCAL_DISTRO}"
|
|
Included section for distro = YADM_DISTRO (YADM_DISTRO repeated)
|
|
YADM_END
|
|
YADM_IF DISTRO="wrongdistro2"
|
|
wrong distro 2
|
|
YADM_END
|
|
end of template
|
|
'''
|
|
EXPECTED = f'''
|
|
start of template
|
|
builtin class = >{LOCAL_CLASS}<
|
|
builtin os = >{LOCAL_SYSTEM}<
|
|
builtin host = >{LOCAL_HOST}<
|
|
builtin user = >{LOCAL_USER}<
|
|
builtin distro = >{LOCAL_DISTRO}<
|
|
Included section for class = {LOCAL_CLASS} ({LOCAL_CLASS} repeated)
|
|
Included section for os = {LOCAL_SYSTEM} ({LOCAL_SYSTEM} repeated)
|
|
Included section for host = {LOCAL_HOST} ({LOCAL_HOST} repeated)
|
|
Included section for user = {LOCAL_USER} ({LOCAL_USER} repeated)
|
|
Included section for distro = {LOCAL_DISTRO} ({LOCAL_DISTRO} repeated)
|
|
end of template
|
|
'''
|
|
|
|
|
|
def test_template_builtin(runner, yadm, tmpdir):
|
|
"""Test template_builtin"""
|
|
|
|
input_file = tmpdir.join('input')
|
|
input_file.write(TEMPLATE, ensure=True)
|
|
output_file = tmpdir.join('output')
|
|
|
|
script = f"""
|
|
YADM_TEST=1 source {yadm}
|
|
local_class="{LOCAL_CLASS}"
|
|
local_system="{LOCAL_SYSTEM}"
|
|
local_host="{LOCAL_HOST}"
|
|
local_user="{LOCAL_USER}"
|
|
local_distro="{LOCAL_DISTRO}"
|
|
template_builtin "{input_file}" "{output_file}"
|
|
"""
|
|
run = runner(command=['bash'], inp=script)
|
|
assert run.success
|
|
assert run.err == ''
|
|
assert output_file.read() == EXPECTED
|