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