comparison tests/test.py @ 395:0b3ffc34fa5c

Begin a jailed configuration with access to a sub-tree of the original configuration
author Franz Glasner <f.glasner@feldmann-mg.com>
date Thu, 18 Nov 2021 18:30:59 +0100
parents 0521e857c320
children b1f82b853290
comparison
equal deleted inserted replaced
394:e05195ee869d 395:0b3ffc34fa5c
1155 def test_direct_ref_namespace_quoting(self): 1155 def test_direct_ref_namespace_quoting(self):
1156 v = self._cfg.getvar_s("re%x66:#%x23%u003a%x7c%U00000025%x2e.%x2e.%x3a.%x25.%x7c./.%x23") 1156 v = self._cfg.getvar_s("re%x66:#%x23%u003a%x7c%U00000025%x2e.%x2e.%x3a.%x25.%x7c./.%x23")
1157 self.assertEqual("value", v) 1157 self.assertEqual("value", v)
1158 1158
1159 1159
1160 class T08Jailed(unittest.TestCase):
1161
1162 def setUp(self):
1163 pass
1164
1165 def tearDown(self):
1166 self._reset()
1167
1168 def _reset(self):
1169 configmix.clear_assoc()
1170 for pat, fmode in configmix.DEFAULT_ASSOC:
1171 configmix.set_assoc(pat, fmode)
1172
1173 def test_root(self):
1174 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1175 jcfg = cfg.jailed(root=u"tree1")
1176
1177 self.assertTrue(jcfg.getvarl(u"tree2", u"key5"))
1178 self.assertTrue(jcfg.getvarl_s(u"tree2", u"key5"))
1179 self.assertEqual(
1180 u"get this as `tree1.tree2.key4'",
1181 jcfg.getvarl(u"tree2", u"key4"))
1182 self.assertEqual(
1183 u"get this as `tree1.tree2.key4'",
1184 jcfg.getvarl_s(u"tree2", u"key4"))
1185
1186 self.assertTrue(jcfg.getvar(u"tree2.key5"))
1187 self.assertTrue(jcfg.getvar_s(u"tree2.key5"))
1188 self.assertEqual(
1189 u"get this as `tree1.tree2.key4'",
1190 jcfg.getvar(u"tree2.key4"))
1191 self.assertEqual(
1192 u"get this as `tree1.tree2.key4'",
1193 jcfg.getvar_s(u"tree2.key4"))
1194
1195 def test_root2(self):
1196 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1197 jcfg = cfg.jailed(root=u"tree1.tree2")
1198
1199 self.assertTrue(jcfg.getvarl(u"key5"))
1200 self.assertTrue(jcfg.getvarl_s(u"key5"))
1201 self.assertEqual(
1202 u"get this as `tree1.tree2.key4'",
1203 jcfg.getvarl(u"key4"))
1204 self.assertEqual(
1205 u"get this as `tree1.tree2.key4'",
1206 jcfg.getvarl_s(u"key4"))
1207
1208 self.assertTrue(jcfg.getvar(u"key5"))
1209 self.assertTrue(jcfg.getvar_s(u"key5"))
1210 self.assertEqual(
1211 u"get this as `tree1.tree2.key4'",
1212 jcfg.getvar(u"key4"))
1213 self.assertEqual(
1214 u"get this as `tree1.tree2.key4'",
1215 jcfg.getvar_s(u"key4"))
1216
1217 def test_root_non_existing_raises(self):
1218 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1219 self.assertRaises(KeyError, cfg.jailed, root=u"tree-non-existing")
1220
1221 def test_rootpath(self):
1222 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1223 jcfg = cfg.jailed(rootpath=[u"tree1"])
1224
1225 self.assertTrue(jcfg.getvarl(u"tree2", u"key5"))
1226 self.assertTrue(jcfg.getvarl_s(u"tree2", u"key5"))
1227 self.assertEqual(
1228 u"get this as `tree1.tree2.key4'",
1229 jcfg.getvarl_s(u"tree2", u"key4"))
1230
1231 self.assertTrue(jcfg.getvar(u"tree2.key5"))
1232 self.assertTrue(jcfg.getvar_s(u"tree2.key5"))
1233 self.assertEqual(
1234 u"get this as `tree1.tree2.key4'",
1235 jcfg.getvar_s(u"tree2.key4"))
1236
1237 def test_rootpath_non_existing_raises(self):
1238 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1239 self.assertRaises(
1240 KeyError, cfg.jailed, rootpath=[u"tree-non-existing"])
1241
1242 def test_root_empty(self):
1243 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1244 jcfg = cfg.jailed(rootpath=u"")
1245
1246 self.assertTrue(jcfg.getvarl(u"tree1", u"tree2", u"key5"))
1247 self.assertTrue(jcfg.getvarl_s(u"tree1", u"tree2", u"key5"))
1248 self.assertEqual(
1249 u"get this as `tree1.tree2.key4'",
1250 jcfg.getvarl_s(u"tree1", u"tree2", u"key4"))
1251
1252 self.assertTrue(jcfg.getvar(u"tree1.tree2.key5"))
1253 self.assertTrue(jcfg.getvar_s(u"tree1.tree2.key5"))
1254 self.assertEqual(
1255 u"get this as `tree1.tree2.key4'",
1256 jcfg.getvar_s(u"tree1.tree2.key4"))
1257
1258 def test_rootpath_empty(self):
1259 cfg = configmix.load(os.path.join(TESTDATADIR, "conf10.py"))
1260 jcfg = cfg.jailed(rootpath=tuple())
1261
1262 self.assertTrue(jcfg.getvarl(u"tree1", u"tree2", u"key5"))
1263 self.assertTrue(jcfg.getvarl_s(u"tree1", u"tree2", u"key5"))
1264 self.assertEqual(
1265 u"get this as `tree1.tree2.key4'",
1266 jcfg.getvarl_s(u"tree1", u"tree2", u"key4"))
1267
1268 self.assertTrue(jcfg.getvar(u"tree1.tree2.key5"))
1269 self.assertTrue(jcfg.getvar_s(u"tree1.tree2.key5"))
1270 self.assertEqual(
1271 u"get this as `tree1.tree2.key4'",
1272 jcfg.getvar_s(u"tree1.tree2.key4"))
1273
1274
1160 if __name__ == "__main__": 1275 if __name__ == "__main__":
1161 unittest.main() 1276 unittest.main()