73 lines
2.4 KiB
Python
73 lines
2.4 KiB
Python
try:
|
|
# python 3 / Sublime Text 3
|
|
from . import simplejson as json
|
|
from .simplejson import OrderedDict
|
|
except (ValueError):
|
|
# python 2 / Sublime Text 2
|
|
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()
|