changeset 516:ad1e630ba736

FIX: Do not filter-out all False values then interpolating (zero int, boolean False)
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 19 Dec 2021 14:36:18 +0100
parents 3387a9d5fb12
children 328af767f5f8
files configmix/config.py tests/data/conf20.yml tests/test.py
diffstat 3 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/configmix/config.py	Sun Dec 19 14:10:28 2021 +0100
+++ b/configmix/config.py	Sun Dec 19 14:36:18 2021 +0100
@@ -781,8 +781,7 @@
             #
             if (start == 0) and (rest == len_s):
                 return varvalue
-            if not varvalue:
-                # None and/or empty str are handled equally here
+            if varvalue is None:
                 pass
             else:
                 res_append(str_and_u(varvalue))
--- a/tests/data/conf20.yml	Sun Dec 19 14:10:28 2021 +0100
+++ b/tests/data/conf20.yml	Sun Dec 19 14:36:18 2021 +0100
@@ -101,6 +101,11 @@
 
   Str: a string
 
+test-falsy-values:
+  b: false
+  i: 0
+  v: 'A{{test-falsy-values.b}}B{{test-falsy-values.i}}C'
+
 
 to-be-deleted: 'a value'
 to-be-deleted-but-reassigned: 'another value'
--- a/tests/test.py	Sun Dec 19 14:10:28 2021 +0100
+++ b/tests/test.py	Sun Dec 19 14:36:18 2021 +0100
@@ -1000,6 +1000,12 @@
         cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini"))
         self.assertEqual("22", cfg.getvarl_s("key103"))
 
+    def test05_expand_falsy_values(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf20.yml"))
+        self.assertEqual(
+            u"AFalseB0C",
+            cfg.getvar_s("test-falsy-values.v"))
+
 
 class T06References(unittest.TestCase):