Mercurial > hgrepos > Python > libs > ConfigMix
diff tests/test.py @ 276:af371f9c016d
Allow deletion of key-value pairs when merging is done.
When encountering the "{{::DEL::}}" special value the corresponding key-value
pair is deleted.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 03 Oct 2020 17:11:41 +0200 |
| parents | 2a8dcab2de8c |
| children | 6a044778371a |
line wrap: on
line diff
--- a/tests/test.py Sat Oct 03 15:52:30 2020 +0200 +++ b/tests/test.py Sat Oct 03 17:11:41 2020 +0200 @@ -308,18 +308,36 @@ _check(cfg) + def test07_deletions(self): + cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml"), + os.path.join(TESTDATADIR, "conf21.yml"), + os.path.join(TESTDATADIR, "conf22.ini"), + os.path.join(TESTDATADIR, "conf23.json"), + os.path.join(TESTDATADIR, "conf24.toml"), + os.path.join(TESTDATADIR, "delete-in-dict.yml")) + # automatic clean-up + self.assertRaises(KeyError, cfg.getvar_s, "not-deleted") + # explicit deletion + self.assertRaises(KeyError, cfg.getvar_s, "to-be-deleted") + self.assertRaises(KeyError, cfg.getvar_s, "db.user.name") + self.assertEqual("the-database-password-2",cfg.getvar_s("db.user.pwd")) + self.assertRaises(KeyError, cfg.getvar_s, "test.Str") + self.assertEqual("not a list any more", cfg.getvar_s("test.List")) + self.assertEqual("the last value", + cfg.getvar_s("to-be-deleted-but-reassigned")) + class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): def setUp(self): self._load = configmix.load - def test07_identity(self): + def test08_identity(self): cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) cfg2 = configmix.merge(cfg, None) self.assertEqual(id(cfg), id(cfg2)) - def test08_identity(self): + def test09_identity(self): cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) cfg2 = configmix.merge(cfg, {}) self.assertEqual(id(cfg), id(cfg2)) @@ -330,12 +348,12 @@ def setUp(self): self._load = configmix.safe_load - def test07_deepcopy(self): + def test08_deepcopy(self): cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) cfg2 = configmix.safe_merge(cfg, None) self.assertNotEqual(id(cfg), id(cfg2)) - def test08_deepcopy(self): + def test09_deepcopy(self): cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) cfg2 = configmix.safe_merge(cfg, {}) self.assertNotEqual(id(cfg), id(cfg2)) @@ -458,7 +476,7 @@ def test04_expand_intint2str_ini(self): cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini")) - self.assertEqual("22", cfg.getvar_s("key103")) + self.assertEqual("22", cfg.getvar_s("key103")) if __name__ == "__main__":
