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_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)
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.
# sub-sub-section is *in* 'sub-section'
# which is in 'section 1'
'keyword 7' = 'value 8'
[section 2] # an inline comment
keyword8 = "value 9"
keyword9 = value10 # an inline comment
# The 'final_comment'
# Which also may be several lines
"""
_ML_0 = """A multiline value,
that spans more than one line :-)
The line breaks are included in the value."""
CNF_0 = ODict((('keyword1', 'value1'),
('keyword 2', 'value 2'),
('section 1',
ODict((('keyword 3', 'value 3'),
('keyword 4', ['value4', 'value 5', 'value 6']),
('sub-section',
ODict((('keyword 5', 'value 7'),
('keyword 6', _ML_0),
('sub-sub-section',
ODict((('keyword 7', 'value 8'), ))))))))),
('section 2',
ODict((('keyword8', 'value 9'), ('keyword9', 'value10'))))))
class HasParserTrait(TBC.HasParserTrait):
psr = TT.Parser()
from __future__ import absolute_import
try:
import anyconfig.backend.toml as TT
except ImportError:
import tests.common
raise tests.common.skip_test()
import tests.backend.common as TBC
from anyconfig.compat import OrderedDict as ODict
_DOB = TT.toml.loads("dob = 1979-05-27T07:32:00Z")['dob']
CNF = ODict((('title', 'TOML Example'),
('owner',
ODict((('name', 'Tom Preston-Werner'),
('dob', _DOB)))),
('database',
ODict((('server', '192.168.1.1'),
('ports', [8001, 8001, 8002]),
('connection_max', 5000),
('enabled', True)))),
('servers',
ODict((('alpha',
ODict((('ip', '10.0.0.1'), ('dc', 'eqdc10')))),
('beta',
ODict((('ip', '10.0.0.2'), ('dc', 'eqdc10'))))))),
('clients',
ODict((('data', [['gamma', 'delta'], [1, 2]]),
('hosts', ['alpha', 'omega']))))))
import tests.common
import anyconfig.ioinfo
from anyconfig.compat import OrderedDict
from tests.common import to_bytes as _bytes
CNF_0 = OrderedDict((("DEFAULT", OrderedDict((("a", "0"), ("b", "bbb"),
("c", "5")))),
("sect0", OrderedDict((("a", "0"), ("b", "bbb"),
("c", "5"),
("d", "x,y,z"))))))
CNF_1 = copy.deepcopy(CNF_0)
CNF_1["sect0"]["d"] = CNF_1["sect0"]["d"].split()
CNF_2 = OrderedDict((("a", 0.1), ("b", _bytes("bbb")),
("sect0", OrderedDict((("c", [_bytes("x"), _bytes("y"),
_bytes("z")]), )))))
def read_from_res(filename):
return open(os.path.join(tests.common.resdir(), filename)).read()
class MyDict(dict):
pass
class HasParserTrait(object):
psr = None # Must be a parser instance.
cnf_s = None # Do.
def test_49_loads_w_validation_error(self):
if not anyconfig.schema.JSONSCHEMA_IS_AVAIL:
skip_test()
cnf_s = """{"a": "aaa"}"""
scm_s = TT.dumps(SCM_0, "json")
cnf_2 = TT.loads(cnf_s, ac_parser="json", ac_schema=scm_s)
self.assertTrue(cnf_2 is None, cnf_2)
class Test_22_single_load(TestBase):
a_path = os.path.join(resdir(), "00-cnf.json")
cnf = CNF_1
pathlib = anyconfig.compat.pathlib
def test_10__single_load(self):
res = TT.single_load(self.a_path)
self.assert_dicts_equal(res, self.cnf)
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_14__single_load__ac_parser_by_id(self):
cid = anyconfig.backend.json.Parser.cid()
res = TT.single_load(self.a_path, ac_parser=cid)
self.assert_dicts_equal(res, self.cnf)
def test_20__single_load__stream(self):
res = TT.single_load(open(self.a_path), ac_parser="json")
def test_60_multi_load__w_ac_dict_option(self):
TT.dump(self.dic, self.a_path)
TT.dump(self.upd, self.b_path)
res = TT.multi_load(self.g_path, ac_dict=MyODict)
self.assert_dicts_equal(res, self.exp)
self.assertTrue(isinstance(res, MyODict))
def _check_multi_load_with_strategy(self, exp, merge=TT.MS_DICTS):
TT.dump(self.dic, self.a_path)
TT.dump(self.upd, self.b_path)
self.assertTrue(os.path.exists(self.a_path))
self.assertTrue(os.path.exists(self.b_path))
res0 = TT.multi_load(self.g_path, ac_merge=merge)
res1 = TT.multi_load([self.g_path, self.b_path], ac_merge=merge)
self.assertTrue(res0)
self.assertTrue(res1)
self.assert_dicts_equal(res0, exp)
self.assert_dicts_equal(res1, exp)
def test_32_dump_and_load__w_options(self):
TT.dump(self.dic, self.a_path, indent=2)
self.assertTrue(os.path.exists(self.a_path))
TT.dump(self.upd, self.b_path, indent=2)
self.assertTrue(os.path.exists(self.b_path))
res = TT.load(self.a_path, parse_int=int)
dic = copy.deepcopy(self.dic)
self.assert_dicts_equal(res, dic)
res = TT.load(self.g_path, parse_int=int)
exp = copy.deepcopy(self.exp)
self.assert_dicts_equal(res, exp)
res = TT.load([self.a_path, self.b_path], parse_int=int)
exp = copy.deepcopy(self.exp)
self.assert_dicts_equal(res, exp)