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
|
require_repo
|
||||||
parse_encrypt
|
parse_encrypt
|
||||||
|
|
||||||
|
# gather values for processing alternates
|
||||||
local local_class
|
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_class="$(config local.class)"
|
||||||
|
|
||||||
local local_system
|
|
||||||
local_system="$(config local.os)"
|
local_system="$(config local.os)"
|
||||||
if [ -z "$local_system" ] ; then
|
if [ -z "$local_system" ] ; then
|
||||||
local_system="$OPERATING_SYSTEM"
|
local_system="$OPERATING_SYSTEM"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local local_host
|
|
||||||
local_host="$(config local.hostname)"
|
local_host="$(config local.hostname)"
|
||||||
if [ -z "$local_host" ] ; then
|
if [ -z "$local_host" ] ; then
|
||||||
local_host=$(hostname)
|
local_host=$(hostname)
|
||||||
local_host=${local_host%%.*} # trim any domain from hostname
|
local_host=${local_host%%.*} # trim any domain from hostname
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local local_user
|
|
||||||
local_user="$(config local.user)"
|
local_user="$(config local.user)"
|
||||||
if [ -z "$local_user" ] ; then
|
if [ -z "$local_user" ] ; then
|
||||||
local_user=$(id -u -n)
|
local_user=$(id -u -n)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$YADM_COMPATIBILITY" = "1" ]; then
|
|
||||||
alt_past
|
|
||||||
else
|
|
||||||
alt_future
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function alt_future() {
|
function alt_future() {
|
||||||
|
|
Loading…
Reference in a new issue