diff tests/test.py @ 251:2a8dcab2de8c

Do not implicitely convert a configuration value to text if the value is the result of just a variable expansion. This is technically a breaking change. But no known client code uses the old behaviour.
author Franz Glasner <fzglas.hg@dom66.de>
date Tue, 07 Jul 2020 22:21:27 +0200
parents b2c75efad9e4
children af371f9c016d
line wrap: on
line diff
--- a/tests/test.py	Tue Jul 07 09:27:24 2020 +0200
+++ b/tests/test.py	Tue Jul 07 22:21:27 2020 +0200
@@ -391,7 +391,7 @@
         cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini"),
                              os.path.join(TESTDATADIR, "conf30.conf"))
         self.assertRaises(KeyError, cfg.getvar_s, "key-new")
-        self.assertRaises(KeyError, cfg.getvar_s, "key1")        
+        self.assertRaises(KeyError, cfg.getvar_s, "key1")
 
     def test03_only_style_corrrect_style(self):
         configmix.clear_assoc()
@@ -431,5 +431,35 @@
         self.assertRaises(KeyError, _ld)
 
 
+class T05SubstituteExpand(unittest.TestCase):
+
+    def setUp(self):
+        self._reset()
+
+    def tearDown(self):
+        self._reset()
+
+    def _reset(self):
+        configmix.clear_assoc()
+        for pat, fmode in configmix.DEFAULT_ASSOC:
+            configmix.set_assoc(pat, fmode)
+
+    def test01_expand_int_ini(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini"))
+        self.assertEqual(2, cfg.getvar_s("key100"))
+
+    def test02_expand_int_indirect_ini(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini"))
+        self.assertEqual(2, cfg.getvar_s("key102"))
+
+    def test03_expand_int2str_ini(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini"))
+        self.assertEqual("the 2 value", cfg.getvar_s("key101"))
+
+    def test04_expand_intint2str_ini(self):
+        cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini"))
+        self.assertEqual("22", cfg.getvar_s("key103"))        
+
+
 if __name__ == "__main__":
     unittest.main()