comparison tests/test.py @ 140:d8d47893df5b

Unittests for custom configuration filename extensions
author Franz Glasner <hg@dom66.de>
date Fri, 06 Apr 2018 22:54:45 +0200
parents 2f2e819e8d17
children 7e6ec99d5ff5
comparison
equal deleted inserted replaced
139:c87b0dc54e1d 140:d8d47893df5b
249 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini")) 249 cfg = configmix.ini.load(os.path.join(TESTDATADIR, "conf1.ini"))
250 cfg2 = configmix.safe_merge(cfg, {}) 250 cfg2 = configmix.safe_merge(cfg, {})
251 self.assertNotEqual(id(cfg), id(cfg2)) 251 self.assertNotEqual(id(cfg), id(cfg2))
252 252
253 253
254 class T04CustomExtension(unittest.TestCase):
255
256 def setUp(self):
257 self._reset()
258
259 def tearDown(self):
260 self._reset()
261
262 def _reset(self):
263 configmix.clear_loader()
264 for ext in configmix.default_loaders:
265 configmix.set_loader(ext, configmix.default_loaders[ext])
266
267 def test01_additional(self):
268 configmix.set_loader(".conf", configmix.default_loaders[".yml"])
269 cfg = configmix.load(
270 os.path.join(TESTDATADIR, "conf1.ini"),
271 os.path.join(TESTDATADIR, "conf30.conf"))
272 self.assertEqual(u("Umlaute: ÄÖÜäöüß"), cfg.getvar_s("key7"))
273 self.assertEqual(u("new value"), cfg.getvar_s("key-new"))
274
275 def test02_only_style_wrong_style(self):
276 configmix.clear_loader()
277 configmix.set_loader(".conf", configmix.default_loaders[".yml"])
278
279 def _ld():
280 return configmix.load(os.path.join(TESTDATADIR, "conf1.ini"),
281 os.path.join(TESTDATADIR, "conf30.conf"))
282
283 self.assertRaises(ValueError, _ld)
284
285 def test03_only_style_corrrect_style(self):
286 configmix.clear_loader()
287 configmix.set_loader(".conf", configmix.default_loaders[".yml"])
288 cfg = configmix.load(os.path.join(TESTDATADIR, "conf30.conf"))
289 self.assertEqual(u("new value"), cfg.getvar_s("key-new"))
290
291 def _g():
292 return cfg.getvar_s("key7")
293
294 self.assertRaises(KeyError, _g)
295
296
254 if __name__ == "__main__": 297 if __name__ == "__main__":
255 unittest.main() 298 unittest.main()