Mercurial > hgrepos > Python > libs > ConfigMix
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):
