comparison tests/test.py @ 407:1bec7f5fafe8

Unittests for the new base and rebind features
author Franz Glasner <f.glasner@feldmann-mg.com>
date Fri, 19 Nov 2021 13:28:08 +0100
parents 6a5aea02f3d0
children 816327e178b0
comparison
equal deleted inserted replaced
406:5286df5aeefe 407:1bec7f5fafe8
1170 for pat, fmode in configmix.DEFAULT_ASSOC: 1170 for pat, fmode in configmix.DEFAULT_ASSOC:
1171 configmix.set_assoc(pat, fmode) 1171 configmix.set_assoc(pat, fmode)
1172 1172
1173 def test_root(self): 1173 def test_root(self):
1174 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py")) 1174 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1175 self.assertFalse(cfg.is_jail)
1176
1177 jcfg = cfg.jailed(root=u"tree1") 1175 jcfg = cfg.jailed(root=u"tree1")
1178 self.assertTrue(jcfg.is_jail)
1179 1176
1180 self.assertTrue(jcfg.getvarl(u"tree2", u"key5")) 1177 self.assertTrue(jcfg.getvarl(u"tree2", u"key5"))
1181 self.assertTrue(jcfg.getvarl_s(u"tree2", u"key5")) 1178 self.assertTrue(jcfg.getvarl_s(u"tree2", u"key5"))
1182 self.assertEqual( 1179 self.assertEqual(
1183 u"get this as `tree1.tree2.key4'", 1180 u"get this as `tree1.tree2.key4'",
1381 self.assertRaises( 1378 self.assertRaises(
1382 KeyError, 1379 KeyError,
1383 jcfg.getfirstvar_s, 1380 jcfg.getfirstvar_s,
1384 u"a.b", u"tree2.no-key") 1381 u"a.b", u"tree2.no-key")
1385 1382
1383 def test_base_rebind(self):
1384 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1385 self.assertFalse(cfg.is_jail)
1386
1387 jcfg = cfg.jailed(rootpath=[])
1388 self.assertTrue(jcfg.is_jail)
1389
1390 self.assertTrue(jcfg.base is cfg)
1391
1392 self.assertRaises(
1393 KeyError,
1394 jcfg.getvarl,
1395 u"tree1", u"tree2", u"no-key")
1396 self.assertEqual(
1397 0x20,
1398 jcfg.getvar(u"tree1.key3"))
1399 self.assertEqual(
1400 u"in the root namespace",
1401 jcfg.getvar("key1"))
1402
1403 cfg2 = configmix.load(os.path.join(TESTDATADIR, "conf2.py"))
1404 self.assertFalse(cfg2.is_jail)
1405
1406 jcfg.rebind(cfg2)
1407 self.assertTrue(jcfg.base is cfg2)
1408
1409 self.assertRaises(
1410 KeyError,
1411 jcfg.getvar,
1412 u"tree1.key3")
1413 self.assertEqual(
1414 u"the next value",
1415 jcfg.getvar("key1"))
1416
1417 def test_rebind_no_nesting(self):
1418 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1419 self.assertFalse(cfg.is_jail)
1420
1421 jcfg1 = cfg.jailed(rootpath=[])
1422 self.assertTrue(jcfg1.is_jail)
1423 jcfg2 = cfg.jailed(rootpath=[u"tree1"])
1424 self.assertTrue(jcfg2.is_jail)
1425
1426 self.assertRaises(
1427 TypeError,
1428 jcfg1.rebind,
1429 jcfg2)
1430
1431 # base is not because rebind() failed
1432 self.assertTrue(cfg is jcfg1.base)
1433
1386 1434
1387 if __name__ == "__main__": 1435 if __name__ == "__main__":
1388 unittest.main() 1436 unittest.main()