@@ -1012,6 +1012,26 @@ def test_constants(self):
10121012 self .assertIs (self .loads (b'I01\n .' ), True )
10131013 self .assertIs (self .loads (b'I00\n .' ), False )
10141014
1015+ def test_zero_padded_integers (self ):
1016+ self .assertEqual (self .loads (b'I010\n .' ), 10 )
1017+ self .assertEqual (self .loads (b'I-010\n .' ), - 10 )
1018+ self .assertEqual (self .loads (b'I0010\n .' ), 10 )
1019+ self .assertEqual (self .loads (b'I-0010\n .' ), - 10 )
1020+ self .assertEqual (self .loads (b'L010\n .' ), 10 )
1021+ self .assertEqual (self .loads (b'L-010\n .' ), - 10 )
1022+ self .assertEqual (self .loads (b'L0010\n .' ), 10 )
1023+ self .assertEqual (self .loads (b'L-0010\n .' ), - 10 )
1024+ self .assertEqual (self .loads (b'L010L\n .' ), 10 )
1025+ self .assertEqual (self .loads (b'L-010L\n .' ), - 10 )
1026+
1027+ def test_nondecimal_integers (self ):
1028+ self .assertRaises (ValueError , self .loads , b'I0b10\n .' )
1029+ self .assertRaises (ValueError , self .loads , b'I0o10\n .' )
1030+ self .assertRaises (ValueError , self .loads , b'I0x10\n .' )
1031+ self .assertRaises (ValueError , self .loads , b'L0b10L\n .' )
1032+ self .assertRaises (ValueError , self .loads , b'L0o10L\n .' )
1033+ self .assertRaises (ValueError , self .loads , b'L0x10L\n .' )
1034+
10151035 def test_empty_bytestring (self ):
10161036 # issue 11286
10171037 empty = self .loads (b'\x80 \x03 U\x00 q\x00 .' , encoding = 'koi8-r' )
0 commit comments