Mercurial > hgrepos > Python > libs > ConfigMix
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() |
