66 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import simplejson as json
 | |
| from simplejson import OrderedDict
 | |
| import decimal
 | |
| import unittest
 | |
| 
 | |
| 
 | |
| class TestIssues(unittest.TestCase):
 | |
| 
 | |
|     def setUp(self):
 | |
|         pass
 | |
| 
 | |
|     def test_ascii_issue_10(self):
 | |
|         tmp_str = '{"tempstr":"\u2022"}'
 | |
|         expected_output = '''{
 | |
|   "tempstr": "\u2022"
 | |
| }'''
 | |
|         obj = json.loads(tmp_str, object_pairs_hook=OrderedDict, parse_float=decimal.Decimal)
 | |
|         tmp_str = json.dumps(obj, indent=2, ensure_ascii=True, sort_keys=False,
 | |
|                     separators=(',', ': '),
 | |
|                     use_decimal=True)
 | |
|         self.assertEqual(tmp_str, expected_output)
 | |
| 
 | |
|     # issue 15
 | |
|     def test_float_issue_15(self):
 | |
|         tmp_str = '{"real":0.99}'
 | |
|         expected_output = """{
 | |
|   "real": 0.99
 | |
| }"""
 | |
|         obj = json.loads(tmp_str, object_pairs_hook=OrderedDict, parse_float=decimal.Decimal)
 | |
|         tmp_str = json.dumps(obj, indent=2, ensure_ascii=False, sort_keys=False,
 | |
|                     separators=(',', ': '),
 | |
|                     use_decimal=True)
 | |
|         self.assertEqual(tmp_str, expected_output)
 | |
| 
 | |
|     # issue 16
 | |
|     def test_float_issue_16_1(self):
 | |
|         tmp_str = '{ "float": 1.0 }'
 | |
|         obj = json.loads(tmp_str, object_pairs_hook=OrderedDict, parse_float=decimal.Decimal)
 | |
|         self.assertEqual(obj['float'], 1.0)
 | |
|         tmp_str = json.dumps(obj, indent=0, ensure_ascii=False, sort_keys=False,
 | |
|                     separators=(',', ': '),
 | |
|                     use_decimal=True)
 | |
|         self.assertEqual(tmp_str.split('\n')[1], '"float": 1.0')
 | |
| 
 | |
|     # issue 16
 | |
|     def test_float_issue_16_2(self):
 | |
|         tmp_str = '{"test1":0.99, "test2":"1.99", "test3":1.00000000001, "test4":1.99, "test5":1, "test6":4.589999999999999999, "test7":1.0}'
 | |
|         expected_output = """{
 | |
|   "test1": 0.99,
 | |
|   "test2": "1.99",
 | |
|   "test3": 1.00000000001,
 | |
|   "test4": 1.99,
 | |
|   "test5": 1,
 | |
|   "test6": 4.589999999999999999,
 | |
|   "test7": 1.0
 | |
| }"""
 | |
|         obj = json.loads(tmp_str, object_pairs_hook=OrderedDict, parse_float=decimal.Decimal)
 | |
|         tmp_str = json.dumps(obj, indent=2, ensure_ascii=False, sort_keys=False,
 | |
|                     separators=(',', ': '),
 | |
|                     use_decimal=True)
 | |
|         self.assertEqual(tmp_str, expected_output)
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     unittest.main()
 |