xref: /freebsd-src/contrib/libucl/python/tests/test_example.py (revision a0409676120c1e558d0ade943019934e0f15118d)
1*a0409676SBaptiste Daroussinfrom .compat import unittest
2*a0409676SBaptiste Daroussinimport json
3*a0409676SBaptiste Daroussinimport ucl
4*a0409676SBaptiste Daroussin
5*a0409676SBaptiste Daroussin_ucl_inp = '''
6*a0409676SBaptiste Daroussinparam = value;
7*a0409676SBaptiste Daroussinsection {
8*a0409676SBaptiste Daroussin    param = value;
9*a0409676SBaptiste Daroussin    param1 = value1;
10*a0409676SBaptiste Daroussin    flag = true;
11*a0409676SBaptiste Daroussin    number = 10k;
12*a0409676SBaptiste Daroussin    time = 0.2s;
13*a0409676SBaptiste Daroussin    string = "something";
14*a0409676SBaptiste Daroussin    subsection {
15*a0409676SBaptiste Daroussin        host = {
16*a0409676SBaptiste Daroussin            host = "hostname";
17*a0409676SBaptiste Daroussin            port = 900;
18*a0409676SBaptiste Daroussin        }
19*a0409676SBaptiste Daroussin        host = {
20*a0409676SBaptiste Daroussin            host = "hostname";
21*a0409676SBaptiste Daroussin            port = 901;
22*a0409676SBaptiste Daroussin        }
23*a0409676SBaptiste Daroussin    }
24*a0409676SBaptiste Daroussin}
25*a0409676SBaptiste Daroussin'''
26*a0409676SBaptiste Daroussin
27*a0409676SBaptiste Daroussin_json_res = {
28*a0409676SBaptiste Daroussin	'param': 'value',
29*a0409676SBaptiste Daroussin	'section': {
30*a0409676SBaptiste Daroussin		'param': 'value',
31*a0409676SBaptiste Daroussin		'param1': 'value1',
32*a0409676SBaptiste Daroussin		'flag': True,
33*a0409676SBaptiste Daroussin		'number': 10000,
34*a0409676SBaptiste Daroussin		'time': '0.2s',
35*a0409676SBaptiste Daroussin		'string': 'something',
36*a0409676SBaptiste Daroussin		'subsection': {
37*a0409676SBaptiste Daroussin			'host': [
38*a0409676SBaptiste Daroussin				{
39*a0409676SBaptiste Daroussin					'host': 'hostname',
40*a0409676SBaptiste Daroussin					'port': 900,
41*a0409676SBaptiste Daroussin				},
42*a0409676SBaptiste Daroussin				{
43*a0409676SBaptiste Daroussin					'host': 'hostname',
44*a0409676SBaptiste Daroussin					'port': 901,
45*a0409676SBaptiste Daroussin				}
46*a0409676SBaptiste Daroussin			]
47*a0409676SBaptiste Daroussin		}
48*a0409676SBaptiste Daroussin	}
49*a0409676SBaptiste Daroussin}
50*a0409676SBaptiste Daroussin
51*a0409676SBaptiste Daroussinclass TestExample(unittest.TestCase):
52*a0409676SBaptiste Daroussin	def test_example(self):
53*a0409676SBaptiste Daroussin		# load in sample UCL
54*a0409676SBaptiste Daroussin		u = ucl.load(_ucl_inp)
55*a0409676SBaptiste Daroussin
56*a0409676SBaptiste Daroussin		# Output and read back the JSON
57*a0409676SBaptiste Daroussin		uj = json.loads(json.dumps(u))
58*a0409676SBaptiste Daroussin
59*a0409676SBaptiste Daroussin		self.assertEqual(uj, _json_res)
60