comparison 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
comparison
equal deleted inserted replaced
397:88239f28415c 398:b1f82b853290
1269 self.assertTrue(jcfg.getvar_s(u"tree1.tree2.key5")) 1269 self.assertTrue(jcfg.getvar_s(u"tree1.tree2.key5"))
1270 self.assertEqual( 1270 self.assertEqual(
1271 u"get this as `tree1.tree2.key4'", 1271 u"get this as `tree1.tree2.key4'",
1272 jcfg.getvar_s(u"tree1.tree2.key4")) 1272 jcfg.getvar_s(u"tree1.tree2.key4"))
1273 1273
1274 def test_rootpath_getfirstvar_nonexisting(self):
1275 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1276 jcfg = cfg.jailed(rootpath=(u"tree1",))
1277
1278 self.assertIsNone(jcfg.getfirstvarl(
1279 *[(u"a", u"b"),
1280 (u"tree2", u"no-key")],
1281 default=None))
1282 self.assertIsNone(jcfg.getfirstvarl_s(
1283 *[(u"a", u"b"),
1284 (u"tree2", u"no-key")],
1285 default=None))
1286 self.assertIsNone(jcfg.getfirstvar(
1287 u"a.b", u"tree2.no-key",
1288 default=None))
1289 self.assertIsNone(jcfg.getfirstvar_s(
1290 u"a.b", u"tree2.no-key",
1291 default=None))
1292
1293 def test_rootpath_getfirstvar_raising(self):
1294 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1295 jcfg = cfg.jailed(rootpath=(u"tree1",))
1296
1297 self.assertRaises(
1298 KeyError,
1299 jcfg.getfirstvarl,
1300 (u"a", u"b"),
1301 (u"tree2", u"no-key"))
1302 self.assertRaises(
1303 KeyError,
1304 jcfg.getfirstvarl_s,
1305 (u"a", u"b"),
1306 (u"tree2", u"no-key"))
1307 self.assertRaises(
1308 KeyError,
1309 jcfg.getfirstvar,
1310 u"a.b", u"tree2.no-key")
1311 self.assertRaises(
1312 KeyError,
1313 jcfg.getfirstvar_s,
1314 u"a.b", u"tree2.no-key")
1315
1316 def test_rootpath_getfirstvar_existing(self):
1317 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1318 jcfg = cfg.jailed(rootpath=(u"tree1",))
1319
1320 self.assertEqual(
1321 u"get this as `tree1.tree2.key4'",
1322 jcfg.getfirstvarl(
1323 *[(u"a", u"b"),
1324 (u"tree2", u"key4")]))
1325 self.assertEqual(
1326 0x20,
1327 jcfg.getfirstvarl_s(
1328 *[(u"a", u"b"),
1329 (u"key3", ),
1330 (u"tree2", u"key4")]))
1331 self.assertEqual(
1332 0x20,
1333 jcfg.getfirstvar(
1334 u"key1", u"key3"))
1335 self.assertEqual(
1336 u"get this as `tree1.tree2.key4'",
1337 jcfg.getfirstvar_s(
1338 u"a.b", u"tree2.key4", u"tree2.key5"))
1339
1340 def test_root_getfirstvar_nonexisting(self):
1341 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1342 jcfg = cfg.jailed(root=u"tree1")
1343
1344 self.assertIsNone(jcfg.getfirstvarl(
1345 *[(u"a", u"b"),
1346 (u"tree2", u"no-key")],
1347 default=None))
1348 self.assertIsNone(jcfg.getfirstvarl_s(
1349 *[(u"a", u"b"),
1350 (u"tree2", u"no-key")],
1351 default=None))
1352 self.assertIsNone(jcfg.getfirstvarl_s(
1353 *[(u"a", u"b"),
1354 (u"tree2", u"no-key")],
1355 default=None))
1356 self.assertIsNone(jcfg.getfirstvar_s(
1357 u"a.b", u"tree2.no-key",
1358 default=None))
1359
1360 def test_root_getfirstvar_raising(self):
1361 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1362 jcfg = cfg.jailed(root=u"tree1")
1363
1364 self.assertRaises(
1365 KeyError,
1366 jcfg.getfirstvarl,
1367 (u"a", u"b"),
1368 (u"tree2", u"no-key"))
1369 self.assertRaises(
1370 KeyError,
1371 jcfg.getfirstvarl_s,
1372 (u"a", u"b"),
1373 (u"tree2", u"no-key"))
1374 self.assertRaises(
1375 KeyError,
1376 jcfg.getfirstvar,
1377 u"a.b", u"tree2.no-key")
1378 self.assertRaises(
1379 KeyError,
1380 jcfg.getfirstvar_s,
1381 u"a.b", u"tree2.no-key")
1382
1274 1383
1275 if __name__ == "__main__": 1384 if __name__ == "__main__":
1276 unittest.main() 1385 unittest.main()