summary refs log tree commit diff
path: root/lib/tests/misc.nix
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2018-03-26 17:31:05 +0200
committerProfpatsch <mail@profpatsch.de>2018-03-29 16:53:06 +0200
commitfa71407f3656b0bf65d40e94a20513d56bcf3c61 (patch)
tree6983417618af26bb11f5c63f6c7dd6bb240c7b79 /lib/tests/misc.nix
parenta7e45fdd8eddca06c2c5db013fe8f9dc4475e1b5 (diff)
downloadnixpkgs-fa71407f3656b0bf65d40e94a20513d56bcf3c61.tar
nixpkgs-fa71407f3656b0bf65d40e94a20513d56bcf3c61.tar.gz
nixpkgs-fa71407f3656b0bf65d40e94a20513d56bcf3c61.tar.bz2
nixpkgs-fa71407f3656b0bf65d40e94a20513d56bcf3c61.tar.lz
nixpkgs-fa71407f3656b0bf65d40e94a20513d56bcf3c61.tar.xz
nixpkgs-fa71407f3656b0bf65d40e94a20513d56bcf3c61.tar.zst
nixpkgs-fa71407f3656b0bf65d40e94a20513d56bcf3c61.zip
lib/generators: introduce a sane default for `mkValueString`
So far, `mkValueString` defaulted to `toString`,
which is a bad match for most configuration file formats,
especially because how booleans are formatted.
This also improves error messages for unsupported types.

Add a test to codify the formatting.
Diffstat (limited to 'lib/tests/misc.nix')
-rw-r--r--lib/tests/misc.nix26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index e10aea48e48..5f19dd63f2d 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -207,6 +207,29 @@ runTests {
     expected = ''f\:oo:bar'';
   };
 
+  testMkValueString = {
+    expr = let
+      vals = {
+        int = 42;
+        string = ''fo"o'';
+        bool = true;
+        bool2 = false;
+        null = null;
+        # float = 42.23; # floats are strange
+      };
+      in mapAttrs
+        (const (generators.mkValueStringDefault {}))
+        vals;
+    expected = {
+      int = "42";
+      string = ''fo"o'';
+      bool = "true";
+      bool2 = "false";
+      null = "null";
+      # float = "42.23" true false [ "bar" ] ]'';
+    };
+  };
+
   testToKeyValue = {
     expr = generators.toKeyValue {} {
       key = "value";
@@ -249,6 +272,8 @@ runTests {
       "section 1" = {
         attribute1 = 5;
         x = "Me-se JarJar Binx";
+        # booleans are converted verbatim by default
+        boolean = false;
       };
       "foo[]" = {
         "he\\h=he" = "this is okay";
@@ -260,6 +285,7 @@ runTests {
 
       [section 1]
       attribute1=5
+      boolean=false
       x=Me-se JarJar Binx
     '';
   };