Mercurial > hgrepos > Python > libs > ConfigMix
comparison tests/test.py @ 305:f529ca46dd50
Implemented the "ref" namespace to get configuration tree references.
BUGS:
- Tests should be done more thoroughly and extensively
- Interaction of tree references and variable substitution should be
tested more properly
- Documentation is missing yet
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 26 Apr 2021 09:42:42 +0200 |
| parents | a03a6797533b |
| children | f77dba9fc164 |
comparison
equal
deleted
inserted
replaced
| 304:d8361dd70d2d | 305:f529ca46dd50 |
|---|---|
| 501 def test04_expand_intint2str_ini(self): | 501 def test04_expand_intint2str_ini(self): |
| 502 cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini")) | 502 cfg = configmix.load(os.path.join(TESTDATADIR, "conf1.ini")) |
| 503 self.assertEqual("22", cfg.getvar_s("key103")) | 503 self.assertEqual("22", cfg.getvar_s("key103")) |
| 504 | 504 |
| 505 | 505 |
| 506 class T06References(unittest.TestCase): | |
| 507 | |
| 508 def setUp(self): | |
| 509 self._reset() | |
| 510 self._cfg = configmix.load( | |
| 511 os.path.join(TESTDATADIR, "conf20.yml"), | |
| 512 os.path.join(TESTDATADIR, "conf21.yml"), | |
| 513 os.path.join(TESTDATADIR, "conf22.ini"), | |
| 514 os.path.join(TESTDATADIR, "conf23.json"), | |
| 515 os.path.join(TESTDATADIR, "conf24.toml"), | |
| 516 os.path.join(TESTDATADIR, "reference-style.yml")) | |
| 517 | |
| 518 def tearDown(self): | |
| 519 self._reset() | |
| 520 | |
| 521 def _reset(self): | |
| 522 configmix.clear_assoc() | |
| 523 for pat, fmode in configmix.DEFAULT_ASSOC: | |
| 524 configmix.set_assoc(pat, fmode) | |
| 525 | |
| 526 def test01_reference_without_expansions(self): | |
| 527 self.assertTrue(isinstance(self._cfg.getvar("wsgi.profiler"), dict)) | |
| 528 self.assertTrue(isinstance( | |
| 529 self._cfg.getvar("wsgi.profiler.params"), dict)) | |
| 530 self.assertEqual("werkzeug", | |
| 531 self._cfg.getvar("wsgi.profiler.params.type")) | |
| 532 self.assertTrue(self._cfg.getvar("wsgi.profiler.params.params.evalex")) | |
| 533 self.assertEqual(self._cfg.getvar("wsgi.debugger"), | |
| 534 self._cfg.getvar("wsgi.profiler.params")) | |
| 535 | |
| 536 def test02_reference__with_expansions(self): | |
| 537 self.assertTrue(isinstance(self._cfg.getvar_s("wsgi.profiler"), dict)) | |
| 538 self.assertTrue(isinstance( | |
| 539 self._cfg.getvar_s("wsgi.profiler.params"), dict)) | |
| 540 self.assertTrue( | |
| 541 self._cfg.getvar_s("wsgi.profiler.params.params.evalex")) | |
| 542 self.assertEqual("werkzeug", | |
| 543 self._cfg.getvar_s("wsgi.profiler.params.type")) | |
| 544 | |
| 545 def test03_no_direct_attribute_access_to_expanded_references(self): | |
| 546 self.assertEqual( | |
| 547 "{{ref:#wsgi.debugger}}", | |
| 548 self._cfg.wsgi.profiler.params) | |
| 549 try: | |
| 550 self._cfg.wsgi.profiler.params.type | |
| 551 except AttributeError: | |
| 552 pass | |
| 553 else: | |
| 554 self.fail("no attribute error seen") | |
| 555 | |
| 556 def test04_indirect_recursive_references(self): | |
| 557 self.assertEqual( | |
| 558 "werkzeug", | |
| 559 self._cfg.getvar_s("testref.here.params.type")) | |
| 560 self.assertTrue( | |
| 561 self._cfg.getvar_s("testref.here.params.params.evalex")) | |
| 562 | |
| 563 def test05_recursive_expansion(self): | |
| 564 c = self._cfg.getvar_s("testref") | |
| 565 self.assertTrue(c["here"]["params"]["params"]["evalex"]) | |
| 566 | |
| 567 | |
| 506 if __name__ == "__main__": | 568 if __name__ == "__main__": |
| 507 unittest.main() | 569 unittest.main() |
