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