summaryrefslogtreecommitdiff
path: root/test/test_compat_jinja.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_compat_jinja.py')
-rw-r--r--test/test_compat_jinja.py198
1 files changed, 0 insertions, 198 deletions
diff --git a/test/test_compat_jinja.py b/test/test_compat_jinja.py
deleted file mode 100644
index 7e2b766..0000000
--- a/test/test_compat_jinja.py
+++ /dev/null
@@ -1,198 +0,0 @@
-"""Test jinja"""
-
-import os
-import pytest
-import utils
-
-# These tests are for the template processing in YADM_COMPATIBILITY=1 mode
-pytestmark = pytest.mark.deprecated
-
-
-@pytest.fixture(scope='module')
-def envtpl_present(runner):
- """Is envtpl present and working?"""
- try:
- run = runner(command=['envtpl', '-h'])
- if run.success:
- return True
- except OSError:
- pass
- return False
-
-
-@pytest.mark.usefixtures('ds1_copy')
-def test_local_override(runner, yadm_y, paths,
- tst_distro, envtpl_present):
- """Test local overrides"""
- if not envtpl_present:
- pytest.skip('Unable to test without envtpl.')
-
- # define local overrides
- utils.set_local(paths, 'class', 'or-class')
- utils.set_local(paths, 'hostname', 'or-hostname')
- utils.set_local(paths, 'os', 'or-os')
- utils.set_local(paths, 'user', 'or-user')
-
- template = (
- 'j2-{{ YADM_CLASS }}-'
- '{{ YADM_OS }}-{{ YADM_HOSTNAME }}-'
- '{{ YADM_USER }}-{{ YADM_DISTRO }}'
- '-{%- '
- f"include '{utils.INCLUDE_FILE}'"
- ' -%}'
- )
- expected = (
- f'j2-or-class-or-os-or-hostname-or-user-{tst_distro}'
- f'-{utils.INCLUDE_CONTENT}'
- )
-
- utils.create_alt_files(paths, '##yadm.j2', content=template,
- includefile=True)
-
- # os.system(f'find {paths.work}' + ' -name *j2 -ls -exec cat \'{}\' ";"')
- # os.system(f'find {paths.work}')
- # run alt to trigger linking
- env = os.environ.copy()
- env['YADM_COMPATIBILITY'] = '1'
- run = runner(yadm_y('alt'), env=env)
- assert run.success
- assert run.err == ''
- created = utils.parse_alt_output(run.out, linked=False)
-
- # assert the proper creation has occurred
- for file_path in (utils.ALT_FILE1, utils.ALT_FILE2):
- source_file = file_path + '##yadm.j2'
- assert paths.work.join(file_path).isfile()
- lines = paths.work.join(file_path).readlines(cr=False)
- assert lines[0] == source_file
- assert lines[1] == expected
- assert str(paths.work.join(source_file)) in created
-
-
-@pytest.mark.parametrize('autoalt', [None, 'true', 'false'])
-@pytest.mark.usefixtures('ds1_copy')
-def test_auto_alt(runner, yadm_y, paths, autoalt, tst_sys,
- envtpl_present):
- """Test setting auto-alt"""
-
- if not envtpl_present:
- pytest.skip('Unable to test without envtpl.')
-
- # set the value of auto-alt
- if autoalt:
- os.system(' '.join(yadm_y('config', 'yadm.auto-alt', autoalt)))
-
- # create file
- jinja_suffix = '##yadm.j2'
- utils.create_alt_files(paths, jinja_suffix, content='{{ YADM_OS }}')
-
- # run status to possibly trigger linking
- env = os.environ.copy()
- env['YADM_COMPATIBILITY'] = '1'
- run = runner(yadm_y('status'), env=env)
- assert run.success
- assert run.err == ''
- created = utils.parse_alt_output(run.out, linked=False)
-
- # assert the proper creation has occurred
- for file_path in (utils.ALT_FILE1, utils.ALT_FILE2):
- source_file = file_path + jinja_suffix
- if autoalt == 'false':
- assert not paths.work.join(file_path).exists()
- else:
- assert paths.work.join(file_path).isfile()
- lines = paths.work.join(file_path).readlines(cr=False)
- assert lines[0] == source_file
- assert lines[1] == tst_sys
- # no created output when run via auto-alt
- assert str(paths.work.join(source_file)) not in created
-
-
-@pytest.mark.usefixtures('ds1_copy')
-def test_jinja_envtpl_missing(runner, paths):
- """Test operation when envtpl is missing"""
-
- script = f"""
- YADM_TEST=1 source {paths.pgm}
- process_global_args -Y "{paths.yadm}"
- set_operating_system
- configure_paths
- YADM_COMPATIBILITY=1
- ENVTPL_PROGRAM='envtpl_missing' main alt
- """
-
- utils.create_alt_files(paths, '##yadm.j2')
-
- run = runner(command=['bash'], inp=script)
- assert run.success
- assert run.err == ''
- assert f'envtpl not available, not creating' in run.out
-
-
-@pytest.mark.parametrize(
- 'tracked, encrypt, exclude', [
- (False, False, False),
- (True, False, False),
- (False, True, False),
- (False, True, True),
- ], ids=[
- 'untracked',
- 'tracked',
- 'encrypted',
- 'excluded',
- ])
-@pytest.mark.usefixtures('ds1_copy')
-def test_jinja(runner, yadm_y, paths,
- tst_sys, tst_host, tst_user, tst_distro,
- tracked, encrypt, exclude,
- envtpl_present):
- """Test jinja processing"""
-
- if not envtpl_present:
- pytest.skip('Unable to test without envtpl.')
-
- jinja_suffix = '##yadm.j2'
-
- # set the class
- tst_class = 'testclass'
- utils.set_local(paths, 'class', tst_class)
-
- template = (
- 'j2-{{ YADM_CLASS }}-'
- '{{ YADM_OS }}-{{ YADM_HOSTNAME }}-'
- '{{ YADM_USER }}-{{ YADM_DISTRO }}'
- '-{%- '
- f"include '{utils.INCLUDE_FILE}'"
- ' -%}'
- )
- expected = (
- f'j2-{tst_class}-'
- f'{tst_sys}-{tst_host}-'
- f'{tst_user}-{tst_distro}'
- f'-{utils.INCLUDE_CONTENT}'
- )
-
- utils.create_alt_files(paths, jinja_suffix, content=template,
- tracked=tracked, encrypt=encrypt, exclude=exclude,
- includefile=True)
-
- # run alt to trigger linking
- env = os.environ.copy()
- env['YADM_COMPATIBILITY'] = '1'
- run = runner(yadm_y('alt'), env=env)
- assert run.success
- assert run.err == ''
- created = utils.parse_alt_output(run.out, linked=False)
-
- # assert the proper creation has occurred
- for file_path in (utils.ALT_FILE1, utils.ALT_FILE2):
- source_file = file_path + jinja_suffix
- if tracked or (encrypt and not exclude):
- assert paths.work.join(file_path).isfile()
- lines = paths.work.join(file_path).readlines(cr=False)
- assert lines[0] == source_file
- assert lines[1] == expected
- assert str(paths.work.join(source_file)) in created
- else:
- assert not paths.work.join(file_path).exists()
- assert str(paths.work.join(source_file)) not in created