Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_19_dump_and_single_load_with_validation(self):
if not anyconfig.schema.JSONSCHEMA_IS_AVAIL:
skip_test()
cnf = CNF_0
scm = SCM_0
cnf_path = os.path.join(self.workdir, "cnf_19.json")
scm_path = os.path.join(self.workdir, "scm_19.json")
TT.dump(cnf, cnf_path)
TT.dump(scm, scm_path)
self.assertTrue(os.path.exists(cnf_path))
self.assertTrue(os.path.exists(scm_path))
cnf_1 = TT.single_load(cnf_path, ac_schema=scm_path)
self.assertFalse(cnf_1 is None) # Validation should succeed.
self.assertTrue(dicts_equal(cnf_1, cnf), cnf_1)
cnf_2 = cnf.copy()
cnf_2["a"] = "aaa" # It's type should be integer not string.
cnf_2_path = os.path.join(self.workdir, "cnf_19_2.json")
TT.dump(cnf_2, cnf_2_path)
self.assertTrue(os.path.exists(cnf_2_path))
cnf_3 = TT.single_load(cnf_2_path, ac_schema=scm_path)
self.assertTrue(cnf_3 is None) # Validation should fail.
def test_12_dump_and_single_load__no_parser(self):
self.assertRaises(TT.UnknownFileTypeError,
TT.single_load, "dummy.ext_not_exist")
def test_39_single_load__w_validation(self):
(cnf, scm) = (CNF_0, SCM_0)
cpath = os.path.join(self.workdir, "cnf.json")
spath = os.path.join(self.workdir, "scm.json")
TT.dump(cnf, cpath)
TT.dump(scm, spath)
cnf1 = TT.single_load(cpath, ac_schema=spath)
self.assert_dicts_equal(cnf, cnf1)
def test_10__single_load(self):
res = TT.single_load(self.a_path)
self.assert_dicts_equal(res, self.cnf)
def test_10_single_load_w_validation(self):
cnf_path = os.path.join(self.workdir, "cnf.json")
scm_path = os.path.join(self.workdir, "scm.json")
TT.dump(CNF_0, cnf_path)
TT.dump(SCM_0, scm_path)
cnf_2 = TT.single_load(cnf_path, ac_context={}, ac_schema=scm_path)
self.assertEqual(cnf_2["name"], CNF_0["name"])
self.assertEqual(cnf_2["a"], CNF_0["a"])
self.assertEqual(cnf_2["b"]["b"], CNF_0["b"]["b"])
self.assertEqual(cnf_2["b"]["c"], CNF_0["b"]["c"])
def _load_and_dump_with_opened_files(self, filename, rmode='r', wmode='w',
**oopts):
cpath = os.path.join(self.workdir, filename)
with TT.open(cpath, 'w', **oopts) as out:
TT.dump(self.cnf, out)
self.assertTrue(_is_file_object(out))
self.assertEqual(out.mode, wmode)
with TT.open(cpath, 'rb', **oopts) as inp:
cnf1 = TT.single_load(inp)
self.assertTrue(_is_file_object(inp))
self.assertEqual(inp.mode, rmode)
cpair = (self.cnf, cnf1)
self.assertTrue(dicts_equal(*cpair), "%r vs. %r" % cpair)
def test_12__single_load__ac_parser(self):
res = TT.single_load(self.a_path, ac_parser="json")
self.assert_dicts_equal(res, self.cnf)
def test_18_single_load__templates(self):
if not anyconfig.template.SUPPORTED:
return
a_path = os.path.join(resdir(), "30-00-cnf.json")
a2_path = os.path.join(resdir(), "00-00-cnf.json") # Not a template
cnf1 = TT.single_load(a_path, ac_template=True, ac_context=self.cnf)
self.assertTrue(dicts_equal(self.cnf, cnf1), str(cnf1))
cnf2 = TT.single_load(a2_path, ac_template=True)
self.assertEqual(cnf2["a"], 1)
def test_16_single_load__template(self):
if not anyconfig.template.SUPPORTED:
return
cpath = os.path.join(resdir(), "30-00-template-cnf.json")
cnf = TT.single_load(cpath, ac_template=True, ac_context=self.cnf)
self.assert_dicts_equal(cnf, self.cnf)
spath = os.path.join(resdir(), "30-00-template-cnf-ng-scm.json")
# Validation should fail.
cnf2 = TT.single_load(cpath, ac_template=True, ac_context=self.cnf,
ac_schema=spath)
self.assertTrue(cnf2 is None)