diff --git a/tests/test_gc.py b/tests/test_gc.py index c951f62..eff25a5 100644 --- a/tests/test_gc.py +++ b/tests/test_gc.py @@ -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()