mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-59598: Ignore leading whitespace in JSONDecoder.raw_decode
Whitespace is allowed before JSON objects according to RFC 4627.
This commit is contained in:
parent
91b7f2e7f6
commit
96963f1e97
4 changed files with 25 additions and 3 deletions
|
|
@ -124,6 +124,20 @@ def test_limit_int(self):
|
|||
with self.assertRaises(ValueError):
|
||||
self.loads('1' * (maxdigits + 1))
|
||||
|
||||
class TestRawDecode:
|
||||
def test_whitespace(self):
|
||||
decoder = self.json.JSONDecoder()
|
||||
self.assertEqual(decoder.raw_decode(' {}'), ({}, 3))
|
||||
self.assertEqual(decoder.raw_decode(' []'), ([], 4))
|
||||
self.assertEqual(decoder.raw_decode(' ""'), ('', 5))
|
||||
s = ' { "key" : "value" , "k":"v" } \n' \
|
||||
' { "key": "value", "k" :"v"} '
|
||||
val1, n1 = decoder.raw_decode(s)
|
||||
val2, n2 = decoder.raw_decode(s[n1:])
|
||||
self.assertEqual(val1, {"key":"value", "k":"v"})
|
||||
self.assertEqual(val2, {"key":"value", "k":"v"})
|
||||
|
||||
class TestPyDecode(TestDecode, PyTest): pass
|
||||
class TestCDecode(TestDecode, CTest): pass
|
||||
class TestPyRawDecode(TestRawDecode, PyTest): pass
|
||||
class TestCRawDecode(TestRawDecode, CTest): pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue