Mercurial > hgrepos > Python > libs > ConfigMix
diff tests/test.py @ 398:b1f82b853290
Jailed configuration: implement more methods: getfirstvarl, getfirstvarl_s, getfirstvar and getfirstvar_s
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 19 Nov 2021 01:39:18 +0100 |
| parents | 0b3ffc34fa5c |
| children | 6a5aea02f3d0 |
line wrap: on
line diff
--- a/tests/test.py Thu Nov 18 22:29:05 2021 +0100 +++ b/tests/test.py Fri Nov 19 01:39:18 2021 +0100 @@ -1271,6 +1271,115 @@ u"get this as `tree1.tree2.key4'", jcfg.getvar_s(u"tree1.tree2.key4")) + def test_rootpath_getfirstvar_nonexisting(self): + cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) + jcfg = cfg.jailed(rootpath=(u"tree1",)) + + self.assertIsNone(jcfg.getfirstvarl( + *[(u"a", u"b"), + (u"tree2", u"no-key")], + default=None)) + self.assertIsNone(jcfg.getfirstvarl_s( + *[(u"a", u"b"), + (u"tree2", u"no-key")], + default=None)) + self.assertIsNone(jcfg.getfirstvar( + u"a.b", u"tree2.no-key", + default=None)) + self.assertIsNone(jcfg.getfirstvar_s( + u"a.b", u"tree2.no-key", + default=None)) + + def test_rootpath_getfirstvar_raising(self): + cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) + jcfg = cfg.jailed(rootpath=(u"tree1",)) + + self.assertRaises( + KeyError, + jcfg.getfirstvarl, + (u"a", u"b"), + (u"tree2", u"no-key")) + self.assertRaises( + KeyError, + jcfg.getfirstvarl_s, + (u"a", u"b"), + (u"tree2", u"no-key")) + self.assertRaises( + KeyError, + jcfg.getfirstvar, + u"a.b", u"tree2.no-key") + self.assertRaises( + KeyError, + jcfg.getfirstvar_s, + u"a.b", u"tree2.no-key") + + def test_rootpath_getfirstvar_existing(self): + cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) + jcfg = cfg.jailed(rootpath=(u"tree1",)) + + self.assertEqual( + u"get this as `tree1.tree2.key4'", + jcfg.getfirstvarl( + *[(u"a", u"b"), + (u"tree2", u"key4")])) + self.assertEqual( + 0x20, + jcfg.getfirstvarl_s( + *[(u"a", u"b"), + (u"key3", ), + (u"tree2", u"key4")])) + self.assertEqual( + 0x20, + jcfg.getfirstvar( + u"key1", u"key3")) + self.assertEqual( + u"get this as `tree1.tree2.key4'", + jcfg.getfirstvar_s( + u"a.b", u"tree2.key4", u"tree2.key5")) + + def test_root_getfirstvar_nonexisting(self): + cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) + jcfg = cfg.jailed(root=u"tree1") + + self.assertIsNone(jcfg.getfirstvarl( + *[(u"a", u"b"), + (u"tree2", u"no-key")], + default=None)) + self.assertIsNone(jcfg.getfirstvarl_s( + *[(u"a", u"b"), + (u"tree2", u"no-key")], + default=None)) + self.assertIsNone(jcfg.getfirstvarl_s( + *[(u"a", u"b"), + (u"tree2", u"no-key")], + default=None)) + self.assertIsNone(jcfg.getfirstvar_s( + u"a.b", u"tree2.no-key", + default=None)) + + def test_root_getfirstvar_raising(self): + cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) + jcfg = cfg.jailed(root=u"tree1") + + self.assertRaises( + KeyError, + jcfg.getfirstvarl, + (u"a", u"b"), + (u"tree2", u"no-key")) + self.assertRaises( + KeyError, + jcfg.getfirstvarl_s, + (u"a", u"b"), + (u"tree2", u"no-key")) + self.assertRaises( + KeyError, + jcfg.getfirstvar, + u"a.b", u"tree2.no-key") + self.assertRaises( + KeyError, + jcfg.getfirstvar_s, + u"a.b", u"tree2.no-key") + if __name__ == "__main__": unittest.main()
