"""Unit tests: remove_stale_links""" import os import pytest @pytest.mark.parametrize("linked", [True, False]) @pytest.mark.parametrize("kind", ["file", "symlink"]) def test_remove_stale_links(runner, yadm, tmpdir, kind, linked): """Test remove_stale_links()""" source_file = tmpdir.join("source_file") source_file.write("source file", ensure=True) link = tmpdir.join("link") if kind == "file": link.write("link file", ensure=True) else: os.system(f"ln -s {source_file} {link}") alt_linked = "" if linked: alt_linked = source_file script = f""" YADM_TEST=1 source {yadm} possible_alt_targets=({link}) alt_linked=({alt_linked}) function rm() {{ echo rm "$@"; }} remove_stale_links """ run = runner(command=["bash"], inp=script) assert run.err == "" if kind == "symlink" and not linked: assert f"rm -f {link}" in run.out else: assert run.out == ""