from .compat import unittest
import json
import ucl

_ucl_inp = '''
param = value;
section {
    param = value;
    param1 = value1;
    flag = true;
    number = 10k;
    time = 0.2s;
    string = "something";
    subsection {
        host = {
            host = "hostname";
            port = 900;
        }
        host = {
            host = "hostname";
            port = 901;
        }
    }
}
'''

_json_res = {
	'param': 'value',
	'section': {
		'param': 'value',
		'param1': 'value1',
		'flag': True,
		'number': 10000,
		'time': '0.2s',
		'string': 'something',
		'subsection': {
			'host': [
				{
					'host': 'hostname',
					'port': 900,
				},
				{
					'host': 'hostname',
					'port': 901,
				}
			]
		}
	}
}

class TestExample(unittest.TestCase):
	def test_example(self):
		# load in sample UCL
		u = ucl.load(_ucl_inp)

		# Output and read back the JSON
		uj = json.loads(json.dumps(u))

		self.assertEqual(uj, _json_res)