summaryrefslogtreecommitdiff
path: root/test/test_alt.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_alt.py')
-rw-r--r--test/test_alt.py45
1 files changed, 24 insertions, 21 deletions
diff --git a/test/test_alt.py b/test/test_alt.py
index 359f32d..b18e6cb 100644
--- a/test/test_alt.py
+++ b/test/test_alt.py
@@ -22,12 +22,12 @@ def test_alt_source(
tracked, encrypt, exclude,
yadm_alt):
"""Test yadm alt operates on all expected sources of alternates"""
- yadm_dir = setup_standard_yadm_dir(paths)
+ yadm_dir, yadm_data = setup_standard_yadm_dir(paths)
utils.create_alt_files(
paths, '##default', tracked=tracked, encrypt=encrypt, exclude=exclude,
yadm_alt=yadm_alt, yadm_dir=yadm_dir)
- run = runner([paths.pgm, '-Y', yadm_dir, 'alt'])
+ run = runner([paths.pgm, '-Y', yadm_dir, '--yadm-data', yadm_data, 'alt'])
assert run.success
assert run.err == ''
linked = utils.parse_alt_output(run.out)
@@ -57,12 +57,12 @@ def test_alt_source(
@pytest.mark.parametrize('yadm_alt', [True, False], ids=['alt', 'worktree'])
def test_relative_link(runner, paths, yadm_alt):
"""Confirm links created are relative"""
- yadm_dir = setup_standard_yadm_dir(paths)
+ yadm_dir, yadm_data = setup_standard_yadm_dir(paths)
utils.create_alt_files(
paths, '##default', tracked=True, encrypt=False, exclude=False,
yadm_alt=yadm_alt, yadm_dir=yadm_dir)
- run = runner([paths.pgm, '-Y', yadm_dir, 'alt'])
+ run = runner([paths.pgm, '-Y', yadm_dir, '--yadm-data', yadm_data, 'alt'])
assert run.success
assert run.err == ''
@@ -81,6 +81,7 @@ def test_relative_link(runner, paths, yadm_alt):
@pytest.mark.usefixtures('ds1_copy')
@pytest.mark.parametrize('suffix', [
'##default',
+ '##default,e.txt', '##default,extension.txt',
'##o.$tst_sys', '##os.$tst_sys',
'##d.$tst_distro', '##distro.$tst_distro',
'##c.$tst_class', '##class.$tst_class',
@@ -91,7 +92,7 @@ def test_alt_conditions(
runner, paths,
tst_sys, tst_distro, tst_host, tst_user, suffix):
"""Test conditions supported by yadm alt"""
- yadm_dir = setup_standard_yadm_dir(paths)
+ yadm_dir, yadm_data = setup_standard_yadm_dir(paths)
# set the class
tst_class = 'testclass'
@@ -106,7 +107,7 @@ def test_alt_conditions(
)
utils.create_alt_files(paths, suffix)
- run = runner([paths.pgm, '-Y', yadm_dir, 'alt'])
+ run = runner([paths.pgm, '-Y', yadm_dir, '--yadm-data', yadm_data, 'alt'])
assert run.success
assert run.err == ''
linked = utils.parse_alt_output(run.out)
@@ -126,18 +127,18 @@ def test_alt_conditions(
@pytest.mark.usefixtures('ds1_copy')
@pytest.mark.parametrize(
- 'kind', ['default', '', None, 'envtpl', 'j2cli', 'j2'])
+ 'kind', ['default', '', None, 'envtpl', 'j2cli', 'j2', 'esh'])
@pytest.mark.parametrize('label', ['t', 'template', 'yadm', ])
def test_alt_templates(
runner, paths, kind, label):
"""Test templates supported by yadm alt"""
- yadm_dir = setup_standard_yadm_dir(paths)
+ yadm_dir, yadm_data = setup_standard_yadm_dir(paths)
suffix = f'##{label}.{kind}'
if kind is None:
suffix = f'##{label}'
utils.create_alt_files(paths, suffix)
- run = runner([paths.pgm, '-Y', yadm_dir, 'alt'])
+ run = runner([paths.pgm, '-Y', yadm_dir, '--yadm-data', yadm_data, 'alt'])
assert run.success
assert run.err == ''
created = utils.parse_alt_output(run.out, linked=False)
@@ -152,15 +153,15 @@ def test_alt_templates(
@pytest.mark.usefixtures('ds1_copy')
@pytest.mark.parametrize('autoalt', [None, 'true', 'false'])
-def test_auto_alt(runner, yadm_y, paths, autoalt):
+def test_auto_alt(runner, yadm_cmd, paths, autoalt):
"""Test auto alt"""
# set the value of auto-alt
if autoalt:
- os.system(' '.join(yadm_y('config', 'yadm.auto-alt', autoalt)))
+ os.system(' '.join(yadm_cmd('config', 'yadm.auto-alt', autoalt)))
utils.create_alt_files(paths, '##default')
- run = runner(yadm_y('status'))
+ run = runner(yadm_cmd('status'))
assert run.success
assert run.err == ''
linked = utils.parse_alt_output(run.out)
@@ -185,7 +186,7 @@ def test_auto_alt(runner, yadm_y, paths, autoalt):
@pytest.mark.usefixtures('ds1_copy')
-def test_stale_link_removal(runner, yadm_y, paths):
+def test_stale_link_removal(runner, yadm_cmd, paths):
"""Stale links to alternative files are removed
This test ensures that when an already linked alternative becomes invalid
@@ -200,7 +201,7 @@ def test_stale_link_removal(runner, yadm_y, paths):
utils.create_alt_files(paths, f'##class.{tst_class}')
# run alt to trigger linking
- run = runner(yadm_y('alt'))
+ run = runner(yadm_cmd('alt'))
assert run.success
assert run.err == ''
linked = utils.parse_alt_output(run.out)
@@ -222,7 +223,7 @@ def test_stale_link_removal(runner, yadm_y, paths):
utils.set_local(paths, 'class', 'changedclass')
# run alt to trigger linking
- run = runner(yadm_y('alt'))
+ run = runner(yadm_cmd('alt'))
assert run.success
assert run.err == ''
linked = utils.parse_alt_output(run.out)
@@ -235,7 +236,7 @@ def test_stale_link_removal(runner, yadm_y, paths):
@pytest.mark.usefixtures('ds1_repo_copy')
-def test_template_overwrite_symlink(runner, yadm_y, paths, tst_sys):
+def test_template_overwrite_symlink(runner, yadm_cmd, paths, tst_sys):
"""Remove symlinks before processing a template
If a symlink is in the way of the output of a template, the target of the
@@ -252,7 +253,7 @@ def test_template_overwrite_symlink(runner, yadm_y, paths, tst_sys):
template = paths.work.join('test_link##template.default')
template.write('test-data')
- run = runner(yadm_y('add', target, template))
+ run = runner(yadm_cmd('add', target, template))
assert run.success
assert run.err == ''
assert run.out == ''
@@ -265,12 +266,13 @@ def test_template_overwrite_symlink(runner, yadm_y, paths, tst_sys):
@pytest.mark.parametrize('style', ['symlink', 'template'])
def test_ensure_alt_path(runner, paths, style):
"""Test that directories are created before making alternates"""
- yadm_dir = setup_standard_yadm_dir(paths)
+ yadm_dir, yadm_data = setup_standard_yadm_dir(paths)
suffix = 'default' if style == 'symlink' else 'template'
filename = 'a/b/c/file'
source = yadm_dir.join(f'alt/{filename}##{suffix}')
source.write('test-data', ensure=True)
- run = runner([paths.pgm, '-Y', yadm_dir, 'add', source])
+ run = runner([
+ paths.pgm, '-Y', yadm_dir, '--yadm-data', yadm_data, 'add', source])
assert run.success
assert run.err == ''
assert run.out == ''
@@ -280,6 +282,7 @@ def test_ensure_alt_path(runner, paths, style):
def setup_standard_yadm_dir(paths):
"""Configure a yadm home within the work tree"""
std_yadm_dir = paths.work.mkdir('.config').mkdir('yadm')
- std_yadm_dir.join('repo.git').mksymlinkto(paths.repo, absolute=1)
+ std_yadm_data = paths.work.mkdir('.local').mkdir('share').mkdir('yadm')
+ std_yadm_data.join('repo.git').mksymlinkto(paths.repo, absolute=1)
std_yadm_dir.join('encrypt').mksymlinkto(paths.encrypt, absolute=1)
- return std_yadm_dir
+ return std_yadm_dir, std_yadm_data