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()