test that .direnv/ gets cleaned

This commit is contained in:
Quentin Aristote 2022-10-20 13:07:45 +02:00
parent 7e76b2e10a
commit 24d0af43fa

View file

@ -38,10 +38,30 @@ def common_test(direnv_project: DirenvProject) -> None:
assert "Executing shellHook." in out2.stderr
def common_test_clean(direnv_project: DirenvProject, num_expected_files: int) -> None:
testenv = str(direnv_project.dir)
out3 = run(
["direnv", "exec", testenv, "hello"],
stderr=subprocess.PIPE,
check=False,
cwd=direnv_project.dir,
)
sys.stderr.write(out3.stderr)
files = list((direnv_project.dir / ".direnv").iterdir())
assert len(files) == num_expected_files
def test_use_nix(direnv_project: DirenvProject) -> None:
direnv_project.setup_envrc("use nix")
common_test(direnv_project)
# --pure here is just a way to make sure the environment changes
direnv_project.setup_envrc("use nix --pure")
# expecting 2 files in .direnv/ : nix-profile-* and nix-profile-*.rc
common_test_clean(direnv_project, num_expected_files=2)
def test_use_flake(direnv_project: DirenvProject) -> None:
direnv_project.setup_envrc("use flake")
@ -55,6 +75,12 @@ def test_use_flake(direnv_project: DirenvProject) -> None:
for symlink in inputs:
assert symlink.is_dir()
# --ignore-environment here is just a way to make sure the environment changes
direnv_project.setup_envrc("use flake --ignore-environment")
# expecting 5 files in .direnv/ : 2 x nix-flake-*, 2 x nix-flake-*.rc
# and flake-inputs
common_test_clean(direnv_project, num_expected_files=5)
if __name__ == "__main__":
unittest.main()