1306542Sbaptfrom .compat import unittest 2306542Sbaptimport ucl 3306542Sbaptimport sys 4306542Sbapt 5306542Sbaptclass DumpTest(unittest.TestCase): 6306542Sbapt def test_no_args(self): 7306542Sbapt with self.assertRaises(TypeError): 8306542Sbapt ucl.dump() 9306542Sbapt 10306542Sbapt def test_none(self): 11306542Sbapt self.assertEqual(ucl.dump(None), None) 12306542Sbapt 13306542Sbapt def test_null(self): 14306542Sbapt data = { "a" : None } 15306542Sbapt valid = "a = null;\n" 16306542Sbapt self.assertEqual(ucl.dump(data), valid) 17306542Sbapt 18306542Sbapt def test_int(self): 19306542Sbapt data = { "a" : 1 } 20306542Sbapt valid = "a = 1;\n" 21306542Sbapt self.assertEqual(ucl.dump(data), valid) 22306542Sbapt 23306542Sbapt def test_nested_int(self): 24306542Sbapt data = { "a" : { "b" : 1 } } 25306542Sbapt valid = "a {\n b = 1;\n}\n" 26306542Sbapt self.assertEqual(ucl.dump(data), valid) 27306542Sbapt 28306542Sbapt def test_int_array(self): 29306542Sbapt data = { "a" : [1,2,3,4] } 30306542Sbapt valid = "a [\n 1,\n 2,\n 3,\n 4,\n]\n" 31306542Sbapt self.assertEqual(ucl.dump(data), valid) 32306542Sbapt 33306542Sbapt def test_str(self): 34306542Sbapt data = { "a" : "b" } 35306542Sbapt valid = "a = \"b\";\n" 36306542Sbapt self.assertEqual(ucl.dump(data), valid) 37306542Sbapt 38306542Sbapt @unittest.skipIf(sys.version_info[0] > 2, "Python3 uses unicode only") 39306542Sbapt def test_unicode(self): 40306542Sbapt data = { unicode("a") : unicode("b") } 41306542Sbapt valid = unicode("a = \"b\";\n") 42306542Sbapt self.assertEqual(ucl.dump(data), valid) 43306542Sbapt 44306542Sbapt def test_float(self): 45306542Sbapt data = { "a" : 1.1 } 46306542Sbapt valid = "a = 1.100000;\n" 47306542Sbapt self.assertEqual(ucl.dump(data), valid) 48306542Sbapt 49306542Sbapt def test_boolean(self): 50306542Sbapt data = { "a" : True, "b" : False } 51306542Sbapt valid = [ 52306542Sbapt "a = true;\nb = false;\n", 53306542Sbapt "b = false;\na = true;\n" 54306542Sbapt ] 55306542Sbapt self.assertIn(ucl.dump(data), valid) 56306542Sbapt 57306542Sbapt def test_empty_ucl(self): 58306542Sbapt self.assertEqual(ucl.dump({}), "") 59306542Sbapt 60306542Sbapt def test_json(self): 61306542Sbapt data = { "a" : 1, "b": "bleh;" } 62306542Sbapt valid = [ 63306542Sbapt '{\n "a": 1,\n "b": "bleh;"\n}', 64306542Sbapt '{\n "b": "bleh;",\n "a": 1\n}' 65306542Sbapt ] 66306542Sbapt self.assertIn(ucl.dump(data, ucl.UCL_EMIT_JSON), valid) 67