Mercurial > hgrepos > Python > libs > ConfigMix
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 275:e2fd8fea1a4c | 276:af371f9c016d |
|---|---|
| 306 if isinstance(v, dict): | 306 if isinstance(v, dict): |
| 307 _check(v) | 307 _check(v) |
| 308 | 308 |
| 309 _check(cfg) | 309 _check(cfg) |
| 310 | 310 |
| 311 def test07_deletions(self): | |
| 312 cfg = self._load(os.path.join(TESTDATADIR, "conf20.yml"), | |
| 313 os.path.join(TESTDATADIR, "conf21.yml"), | |
| 314 os.path.join(TESTDATADIR, "conf22.ini"), | |
| 315 os.path.join(TESTDATADIR, "conf23.json"), | |
| 316 os.path.join(TESTDATADIR, "conf24.toml"), | |
| 317 os.path.join(TESTDATADIR, "delete-in-dict.yml")) | |
| 318 # automatic clean-up | |
| 319 self.assertRaises(KeyError, cfg.getvar_s, "not-deleted") | |
| 320 # explicit deletion | |
| 321 self.assertRaises(KeyError, cfg.getvar_s, "to-be-deleted") | |
| 322 self.assertRaises(KeyError, cfg.getvar_s, "db.user.name") | |
| 323 self.assertEqual("the-database-password-2",cfg.getvar_s("db.user.pwd")) | |
| 324 self.assertRaises(KeyError, cfg.getvar_s, "test.Str") | |
| 325 self.assertEqual("not a list any more", cfg.getvar_s("test.List")) | |
| 326 self.assertEqual("the last value", | |
| 327 cfg.getvar_s("to-be-deleted-but-reassigned")) | |
| 328 | |
| 311 | 329 |
| 312 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): | 330 class T02LoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): |
| 313 | 331 |
| 314 def setUp(self): | 332 def setUp(self): |
| 315 self._load = configmix.load | 333 self._load = configmix.load |
| 316 | 334 |
| 317 def test07_identity(self): | 335 def test08_identity(self): |
| 318 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) | 336 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) |
| 319 cfg2 = configmix.merge(cfg, None) | 337 cfg2 = configmix.merge(cfg, None) |
| 320 self.assertEqual(id(cfg), id(cfg2)) | 338 self.assertEqual(id(cfg), id(cfg2)) |
| 321 | 339 |
| 322 def test08_identity(self): | 340 def test09_identity(self): |
| 323 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) | 341 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) |
| 324 cfg2 = configmix.merge(cfg, {}) | 342 cfg2 = configmix.merge(cfg, {}) |
| 325 self.assertEqual(id(cfg), id(cfg2)) | 343 self.assertEqual(id(cfg), id(cfg2)) |
| 326 | 344 |
| 327 | 345 |
| 328 class T03SafeLoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): | 346 class T03SafeLoadAndMerge(_T02MixinLoadAndMerge, unittest.TestCase): |
| 329 | 347 |
| 330 def setUp(self): | 348 def setUp(self): |
| 331 self._load = configmix.safe_load | 349 self._load = configmix.safe_load |
| 332 | 350 |
| 333 def test07_deepcopy(self): | 351 def test08_deepcopy(self): |
| 334 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) | 352 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) |
| 335 cfg2 = configmix.safe_merge(cfg, None) | 353 cfg2 = configmix.safe_merge(cfg, None) |
| 336 self.assertNotEqual(id(cfg), id(cfg2)) | 354 self.assertNotEqual(id(cfg), id(cfg2)) |
| 337 | 355 |
| 338 def test08_deepcopy(self): | 356 def test09_deepcopy(self): |
| 339 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) | 357 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) |
| 340 cfg2 = configmix.safe_merge(cfg, {}) | 358 cfg2 = configmix.safe_merge(cfg, {}) |
| 341 self.assertNotEqual(id(cfg), id(cfg2)) | 359 self.assertNotEqual(id(cfg), id(cfg2)) |
| 342 | 360 |
| 343 | 361 |
| 456 cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini")) | 474 cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini")) |
| 457 self.assertEqual("the 2 value", cfg.getvar_s("key101")) | 475 self.assertEqual("the 2 value", cfg.getvar_s("key101")) |
| 458 | 476 |
| 459 def test04_expand_intint2str_ini(self): | 477 def test04_expand_intint2str_ini(self): |
| 460 cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini")) | 478 cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini")) |
| 461 self.assertEqual("22", cfg.getvar_s("key103")) | 479 self.assertEqual("22", cfg.getvar_s("key103")) |
| 462 | 480 |
| 463 | 481 |
| 464 if __name__ == "__main__": | 482 if __name__ == "__main__": |
| 465 unittest.main() | 483 unittest.main() |
