diff -r 5b33829badcc Lib/test/test_json/test_decode.py --- a/Lib/test/test_json/test_decode.py Mon Oct 24 23:49:51 2016 +0300 +++ b/Lib/test/test_json/test_decode.py Wed Oct 26 21:26:58 2016 -0500 @@ -89,6 +89,19 @@ self.assertEqual(self.loads(bom_in_str), '\ufeff') self.assertEqual(self.json.load(StringIO(bom_in_str)), '\ufeff') + def test_bytes_encodings(self): + encodings = [ + 'utf-8', 'utf-8-sig', + 'utf-16', 'utf-16-be', 'utf-16-le', + 'utf-32', 'utf-32-be', 'utf-32-le' + ] + for enc in encodings: + long_json = '{"snowman": "\u2603"}'.encode(enc) + self.assertEqual(self.loads(long_json), {'snowman': '\u2603'}) + for enc in ['utf-16-be', 'utf-16-le']: + short_json = '5'.encode(enc) + self.assertEqual(self.loads(short_json), 5) + def test_negative_index(self): d = self.json.JSONDecoder() self.assertRaises(ValueError, d.raw_decode, 'a'*42, -50000)