From 2497e0101ec016d6f5dbb10e2c34a7e2ebf1ca11 Mon Sep 17 00:00:00 2001 From: "Commentator2.0" Date: Tue, 18 Nov 2025 17:38:14 +0100 Subject: [PATCH] tests/functional2/lang: Migrate builtins.pathExists Change-Id: Ib31b7dddc71ae36924822f300b028bf354f63874 --- .../lang/builtins.pathExists/__init__.py | 0 .../builtins.pathExists/eval-okay.out.exp} | 0 .../lang/builtins.pathExists/in.nix} | 24 +++++++-------- .../builtins.pathExists/test_path_exists.py | 30 +++++++++++++++++++ 4 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 tests/functional2/lang/builtins.pathExists/__init__.py rename tests/{functional/lang/eval-okay-pathexists.exp => functional2/lang/builtins.pathExists/eval-okay.out.exp} (100%) rename tests/{functional/lang/eval-okay-pathexists.nix => functional2/lang/builtins.pathExists/in.nix} (57%) create mode 100644 tests/functional2/lang/builtins.pathExists/test_path_exists.py diff --git a/tests/functional2/lang/builtins.pathExists/__init__.py b/tests/functional2/lang/builtins.pathExists/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/functional/lang/eval-okay-pathexists.exp b/tests/functional2/lang/builtins.pathExists/eval-okay.out.exp similarity index 100% rename from tests/functional/lang/eval-okay-pathexists.exp rename to tests/functional2/lang/builtins.pathExists/eval-okay.out.exp diff --git a/tests/functional/lang/eval-okay-pathexists.nix b/tests/functional2/lang/builtins.pathExists/in.nix similarity index 57% rename from tests/functional/lang/eval-okay-pathexists.nix rename to tests/functional2/lang/builtins.pathExists/in.nix index 99253d764..d00e05aae 100644 --- a/tests/functional/lang/eval-okay-pathexists.nix +++ b/tests/functional2/lang/builtins.pathExists/in.nix @@ -9,20 +9,20 @@ builtins.pathExists (./lib.nix) # && !builtins.pathExists (builtins.toString ./lib.nix + "/../lib.nix") && !builtins.pathExists (builtins.toString ./lib.nix + "/./") && !builtins.pathExists (builtins.toString ./lib.nix + "/./.") -&& builtins.pathExists (builtins.toString ./.. + "/lang/lib.nix") -&& !builtins.pathExists (builtins.toString ./.. + "lang/lib.nix") -&& builtins.pathExists (builtins.toString ./. + "/../lang/lib.nix") -&& builtins.pathExists (builtins.toString ./. + "/../lang/./lib.nix") +&& builtins.pathExists (builtins.toString ./.. + "/test-home/lib.nix") +&& !builtins.pathExists (builtins.toString ./.. + "test-home/lib.nix") +&& builtins.pathExists (builtins.toString ./. + "/../test-home/lib.nix") +&& builtins.pathExists (builtins.toString ./. + "/../test-home/./lib.nix") && builtins.pathExists (builtins.toString ./.) && builtins.pathExists (builtins.toString ./. + "/") -&& builtins.pathExists (builtins.toString ./. + "/../lang") -&& builtins.pathExists (builtins.toString ./. + "/../lang/") -&& builtins.pathExists (builtins.toString ./. + "/../lang/.") -&& builtins.pathExists (builtins.toString ./. + "/../lang/./") -&& builtins.pathExists (builtins.toString ./. + "/../lang//./") -&& builtins.pathExists (builtins.toString ./. + "/../lang/..") -&& builtins.pathExists (builtins.toString ./. + "/../lang/../") -&& builtins.pathExists (builtins.toString ./. + "/../lang/..//") +&& builtins.pathExists (builtins.toString ./. + "/../test-home") +&& builtins.pathExists (builtins.toString ./. + "/../test-home/") +&& builtins.pathExists (builtins.toString ./. + "/../test-home/.") +&& builtins.pathExists (builtins.toString ./. + "/../test-home/./") +&& builtins.pathExists (builtins.toString ./. + "/../test-home//./") +&& builtins.pathExists (builtins.toString ./. + "/../test-home/..") +&& builtins.pathExists (builtins.toString ./. + "/../test-home/../") +&& builtins.pathExists (builtins.toString ./. + "/../test-home/..//") && builtins.pathExists (builtins.toPath (builtins.toString ./lib.nix)) && !builtins.pathExists (builtins.toPath (builtins.toString ./bla.nix)) && builtins.pathExists ./lib.nix diff --git a/tests/functional2/lang/builtins.pathExists/test_path_exists.py b/tests/functional2/lang/builtins.pathExists/test_path_exists.py new file mode 100644 index 000000000..deda43e01 --- /dev/null +++ b/tests/functional2/lang/builtins.pathExists/test_path_exists.py @@ -0,0 +1,30 @@ +from pathlib import Path +from collections.abc import Callable + +from functional2.lang.test_lang import test_eval as nix_eval +from functional2.testlib.fixtures.file_helper import ( + with_files, + CopyFile, + AssetSymlink, + File, + Symlink, +) +from functional2.testlib.fixtures.nix import Nix +from functional2.testlib.fixtures.snapshot import Snapshot + + +@with_files( + { + "in.nix": CopyFile("in.nix"), + "out.exp": AssetSymlink("eval-okay.out.exp"), + "err.exp": AssetSymlink("eval-okay.err.exp"), + "symlink-resolution": { + "foo": {"lib": {"default.nix": File('"test"')}, "overlays": Symlink("../overlays")}, + "overlays": {"overlay.nix": File("import ../lib")}, + "broken": Symlink("nonexistent"), + }, + "lib.nix": CopyFile("../lib.nix"), + } +) +def test_path_exists(nix: Nix, files: Path, snapshot: Callable[[str], Snapshot]): + nix_eval(files, nix, [], snapshot)