"""Unit tests: set_local_alt_values""" import pytest import utils @pytest.mark.parametrize( "override", [ False, "class", "arch", "os", "hostname", "user", ], ids=[ "no-override", "override-class", "override-arch", "override-os", "override-hostname", "override-user", ], ) @pytest.mark.usefixtures("ds1_copy") def test_set_local_alt_values(runner, yadm, paths, tst_arch, 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} YADM_DATA={paths.data} configure_paths && set_local_alt_values echo "class='$local_class'" echo "arch='$local_arch'" echo "os='$local_system'" echo "host='$local_host'" echo "user='$local_user'" """ if override == "class": utils.set_local(paths, override, "first") utils.set_local(paths, override, "override", add=True) elif 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 == "arch": assert "arch='override'" in run.out else: assert f"arch='{tst_arch}'" 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 "host='override'" in run.out else: assert f"host='{tst_host}'" in run.out if override == "user": assert "user='override'" in run.out else: assert f"user='{tst_user}'" in run.out def test_distro_and_family(runner, yadm): """Assert that local_distro/local_distro_family are set""" script = f""" YADM_TEST=1 source {yadm} function config() {{ echo "$1"; }} function query_distro() {{ echo "testdistro"; }} function query_distro_family() {{ echo "testfamily"; }} set_local_alt_values echo "distro='$local_distro'" echo "distro_family='$local_distro_family'" """ run = runner(command=["bash"], inp=script) assert run.success assert run.err == "" assert "distro='testdistro'" in run.out assert "distro_family='testfamily'" in run.out