diff options
author | Silvan Mosberger <contact@infinisil.com> | 2023-10-10 19:49:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-10 19:49:17 +0200 |
commit | 5323fbf70331f8a7c47f1b4f49841cf74507f77f (patch) | |
tree | 633d4a4f8d2f36148370d73e413e05dc2ccbe23b /lib/tests | |
parent | 26858d744cc49f58cf15c2ba22a7b2d251d3fb55 (diff) | |
parent | d70633f91cb27d9314940d3a6e9385f89bf7f007 (diff) |
Merge pull request #254452 from flyingcircusio/lib-attrsToList
lib.attrsets.attrsToList: add function
Diffstat (limited to 'lib/tests')
-rw-r--r-- | lib/tests/misc.nix | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index ec306acbb765f..6527c31e49c2e 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 |