summary refs log tree commit diff
path: root/lib/tests/misc.nix
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2023-10-10 19:49:17 +0200
committerGitHub <noreply@github.com>2023-10-10 19:49:17 +0200
commit5323fbf70331f8a7c47f1b4f49841cf74507f77f (patch)
tree633d4a4f8d2f36148370d73e413e05dc2ccbe23b /lib/tests/misc.nix
parent26858d744cc49f58cf15c2ba22a7b2d251d3fb55 (diff)
parentd70633f91cb27d9314940d3a6e9385f89bf7f007 (diff)
downloadnixpkgs-5323fbf70331f8a7c47f1b4f49841cf74507f77f.tar
nixpkgs-5323fbf70331f8a7c47f1b4f49841cf74507f77f.tar.gz
nixpkgs-5323fbf70331f8a7c47f1b4f49841cf74507f77f.tar.bz2
nixpkgs-5323fbf70331f8a7c47f1b4f49841cf74507f77f.tar.lz
nixpkgs-5323fbf70331f8a7c47f1b4f49841cf74507f77f.tar.xz
nixpkgs-5323fbf70331f8a7c47f1b4f49841cf74507f77f.tar.zst
nixpkgs-5323fbf70331f8a7c47f1b4f49841cf74507f77f.zip
Merge pull request #254452 from flyingcircusio/lib-attrsToList
lib.attrsets.attrsToList: add function
Diffstat (limited to 'lib/tests/misc.nix')
-rw-r--r--lib/tests/misc.nix24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index ec306acbb76..6527c31e49c 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -20,6 +20,10 @@ let
     expr = (builtins.tryEval (builtins.seq expr "didn't throw"));
     expected = { success = false; value = false; };
   };
+  testingEval = expr: {
+    expr = (builtins.tryEval expr).success;
+    expected = true;
+  };
   testingDeepThrow = expr: testingThrow (builtins.deepSeq expr expr);
 
   testSanitizeDerivationName = { name, expected }:
@@ -816,6 +820,26 @@ runTests {
     expected = { a = 1; b = 2; };
   };
 
+  testListAttrsReverse = let
+    exampleAttrs = {foo=1; bar="asdf"; baz = [1 3 3 7]; fnord=null;};
+    exampleSingletonList = [{name="foo"; value=1;}];
+  in {
+    expr = {
+      isReverseToListToAttrs = builtins.listToAttrs (attrsToList exampleAttrs) == exampleAttrs;
+      isReverseToAttrsToList = attrsToList (builtins.listToAttrs exampleSingletonList) == exampleSingletonList;
+      testDuplicatePruningBehaviour = attrsToList (builtins.listToAttrs [{name="a"; value=2;} {name="a"; value=1;}]);
+    };
+    expected = {
+      isReverseToAttrsToList = true;
+      isReverseToListToAttrs = true;
+      testDuplicatePruningBehaviour = [{name="a"; value=2;}];
+    };
+  };
+
+  testAttrsToListsCanDealWithFunctions = testingEval (
+    attrsToList { someFunc= a: a + 1;}
+  );
+
 # GENERATORS
 # these tests assume attributes are converted to lists
 # in alphabetical order