Split discovery of alternates test data into a testable function
This commit is contained in:
parent
c29292d02b
commit
e4e956fe21
2 changed files with 78 additions and 9 deletions
62
test/test_unit_set_local_alt_values.py
Normal file
62
test/test_unit_set_local_alt_values.py
Normal file
|
@ -0,0 +1,62 @@
|
|||
"""Unit tests: set_local_alt_values"""
|
||||
import pytest
|
||||
import utils
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'override', [
|
||||
False,
|
||||
'class',
|
||||
'os',
|
||||
'hostname',
|
||||
'user',
|
||||
],
|
||||
ids=[
|
||||
'no-override',
|
||||
'override-class',
|
||||
'override-os',
|
||||
'override-hostname',
|
||||
'override-user',
|
||||
]
|
||||
)
|
||||
@pytest.mark.usefixtures('ds1_copy')
|
||||
def test_set_local_alt_values(
|
||||
runner, yadm, paths, tst_sys, tst_host, tst_user, override):
|
||||
"""Use issue_legacy_path_warning"""
|
||||
script = f"""
|
||||
YADM_TEST=1 source {yadm} &&
|
||||
set_operating_system &&
|
||||
YADM_DIR={paths.yadm} configure_paths &&
|
||||
set_local_alt_values
|
||||
echo "class='$local_class'"
|
||||
echo "os='$local_system'"
|
||||
echo "host='$local_host'"
|
||||
echo "user='$local_user'"
|
||||
"""
|
||||
|
||||
if override:
|
||||
utils.set_local(paths, override, 'override')
|
||||
|
||||
run = runner(command=['bash'], inp=script)
|
||||
assert run.success
|
||||
assert run.err == ''
|
||||
|
||||
if override == 'class':
|
||||
assert "class='override'" in run.out
|
||||
else:
|
||||
assert "class=''" in run.out
|
||||
|
||||
if override == 'os':
|
||||
assert "os='override'" in run.out
|
||||
else:
|
||||
assert f"os='{tst_sys}'" in run.out
|
||||
|
||||
if override == 'hostname':
|
||||
assert f"host='override'" in run.out
|
||||
else:
|
||||
assert f"host='{tst_host}'" in run.out
|
||||
|
||||
if override == 'user':
|
||||
assert f"user='override'" in run.out
|
||||
else:
|
||||
assert f"user='{tst_user}'" in run.out
|
25
yadm
25
yadm
|
@ -135,34 +135,41 @@ function alt() {
|
|||
require_repo
|
||||
parse_encrypt
|
||||
|
||||
# gather values for processing alternates
|
||||
local local_class
|
||||
local local_system
|
||||
local local_host
|
||||
local local_user
|
||||
set_local_alt_values
|
||||
|
||||
if [ "$YADM_COMPATIBILITY" = "1" ]; then
|
||||
alt_past
|
||||
else
|
||||
alt_future
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function set_local_alt_values() {
|
||||
|
||||
local_class="$(config local.class)"
|
||||
|
||||
local local_system
|
||||
local_system="$(config local.os)"
|
||||
if [ -z "$local_system" ] ; then
|
||||
local_system="$OPERATING_SYSTEM"
|
||||
fi
|
||||
|
||||
local local_host
|
||||
local_host="$(config local.hostname)"
|
||||
if [ -z "$local_host" ] ; then
|
||||
local_host=$(hostname)
|
||||
local_host=${local_host%%.*} # trim any domain from hostname
|
||||
fi
|
||||
|
||||
local local_user
|
||||
local_user="$(config local.user)"
|
||||
if [ -z "$local_user" ] ; then
|
||||
local_user=$(id -u -n)
|
||||
fi
|
||||
|
||||
if [ "$YADM_COMPATIBILITY" = "1" ]; then
|
||||
alt_past
|
||||
else
|
||||
alt_future
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function alt_future() {
|
||||
|
|
Loading…
Reference in a new issue