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