diff tests/test.py @ 741:e069797f0e36

Implemented the new merge stragegies when merging lists: "extend" and "prepend"
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 29 Oct 2023 17:15:41 +0100
parents cc9dff5fe0ca
children 220a9ec9ac72
line wrap: on
line diff
--- a/tests/test.py	Sun Oct 29 17:13:32 2023 +0100
+++ b/tests/test.py	Sun Oct 29 17:15:41 2023 +0100
@@ -1001,6 +1001,46 @@
         self.assertEqual(1, cfg.getvar_s(u"expand-me"))
         self.assertEqual(2, cfg.getvar_s(u"expand-me-2"))
 
+    def test54_list_merge_replaces_by_default(self):
+        cfg = self._load(os.path.join(TESTDATADIR, "conf10.toml"),
+                         os.path.join(TESTDATADIR, "conf10.yml"))
+        self.assertEqual([u"val1", u"val2", u"in the root namespace"],
+                         cfg.getvarl_s(u"tree1", u"tree2", u"key8"))
+
+    def test55_list_merge_extend(self):
+        cfg = self._load(os.path.join(TESTDATADIR, "conf10.toml"),
+                         os.path.join(TESTDATADIR, "conf10.yml"),
+                         merge_lists="extend")
+        self.assertEqual([u"val1", u"val2", u"in the root namespace",
+                          u"val1", u"val2", u"in the root namespace"],
+                         cfg.getvarl_s(u"tree1", u"tree2", u"key8"))
+
+    def test56_list_merge_wrong_param(self):
+        try:
+            self._load(os.path.join(TESTDATADIR, "conf10.toml"),
+                       os.path.join(TESTDATADIR, "conf10.yml"),
+                       merge_lists="__unknown-merge-strategy__")
+        except ValueError:
+            pass
+        else:
+            self.fail("Should have thrown a `ValueError' exception")
+
+    def test57_list_merge_extend(self):
+        cfg = self._load(os.path.join(TESTDATADIR, "conf10.toml"),
+                         os.path.join(TESTDATADIR, "conf10_list_extend.yml"),
+                         merge_lists="extend")
+        self.assertEqual([u"val1", u"val2", u"in the root namespace",
+                          u"val4", u"val5", u"val6"],
+                         cfg.getvarl_s(u"tree1", u"tree2", u"key8"))
+
+    def test58_list_merge_prepend(self):
+        cfg = self._load(os.path.join(TESTDATADIR, "conf10.toml"),
+                         os.path.join(TESTDATADIR, "conf10_list_extend.yml"),
+                         merge_lists="prepend")
+        self.assertEqual([u"val4", u"val5", u"val6",
+                          u"val1", u"val2", u"in the root namespace",],
+                         cfg.getvarl_s(u"tree1", u"tree2", u"key8"))
+
 
 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase):