11import decimal
2- from unittest import TestCase
32from io import StringIO
4-
5- import json
63from collections import OrderedDict
4+ from json .tests import PyTest , CTest
5+
76
8- class TestDecode ( TestCase ) :
7+ class TestDecode :
98 def test_decimal (self ):
10- rval = json .loads ('1.1' , parse_float = decimal .Decimal )
9+ rval = self .loads ('1.1' , parse_float = decimal .Decimal )
1110 self .assertTrue (isinstance (rval , decimal .Decimal ))
1211 self .assertEqual (rval , decimal .Decimal ('1.1' ))
1312
1413 def test_float (self ):
15- rval = json .loads ('1' , parse_int = float )
14+ rval = self .loads ('1' , parse_int = float )
1615 self .assertTrue (isinstance (rval , float ))
1716 self .assertEqual (rval , 1.0 )
1817
1918 def test_empty_objects (self ):
20- self .assertEqual (json .loads ('{}' ), {})
21- self .assertEqual (json .loads ('[]' ), [])
22- self .assertEqual (json .loads ('""' ), "" )
19+ self .assertEqual (self .loads ('{}' ), {})
20+ self .assertEqual (self .loads ('[]' ), [])
21+ self .assertEqual (self .loads ('""' ), "" )
2322
2423 def test_object_pairs_hook (self ):
2524 s = '{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}'
2625 p = [("xkd" , 1 ), ("kcw" , 2 ), ("art" , 3 ), ("hxm" , 4 ),
2726 ("qrt" , 5 ), ("pad" , 6 ), ("hoy" , 7 )]
28- self .assertEqual (json .loads (s ), eval (s ))
29- self .assertEqual (json .loads (s , object_pairs_hook = lambda x : x ), p )
30- self .assertEqual (json .load (StringIO (s ),
27+ self .assertEqual (self .loads (s ), eval (s ))
28+ self .assertEqual (self .loads (s , object_pairs_hook = lambda x : x ), p )
29+ self .assertEqual (self . json .load (StringIO (s ),
3130 object_pairs_hook = lambda x : x ), p )
32- od = json .loads (s , object_pairs_hook = OrderedDict )
31+ od = self .loads (s , object_pairs_hook = OrderedDict )
3332 self .assertEqual (od , OrderedDict (p ))
3433 self .assertEqual (type (od ), OrderedDict )
3534 # the object_pairs_hook takes priority over the object_hook
36- self .assertEqual (json .loads (s ,
35+ self .assertEqual (self .loads (s ,
3736 object_pairs_hook = OrderedDict ,
3837 object_hook = lambda x : None ),
3938 OrderedDict (p ))
@@ -42,5 +41,9 @@ def test_decoder_optimizations(self):
4241 # Several optimizations were made that skip over calls to
4342 # the whitespace regex, so this test is designed to try and
4443 # exercise the uncommon cases. The array cases are already covered.
45- rval = json .loads ('{ "key" : "value" , "k":"v" }' )
44+ rval = self .loads ('{ "key" : "value" , "k":"v" }' )
4645 self .assertEqual (rval , {"key" :"value" , "k" :"v" })
46+
47+
48+ class TestPyDecode (TestDecode , PyTest ): pass
49+ class TestCDecode (TestDecode , CTest ): pass
0 commit comments