gh-122163: Add notes for JSON serialization errors (GH-122165)

This allows to identify the source of the error.
This commit is contained in:
Serhiy Storchaka 2024-07-23 20:02:54 +03:00 committed by GitHub
parent c908d1f87d
commit e6b25e9a09
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 135 additions and 66 deletions

View file

@ -12,8 +12,8 @@ class TestRecursion:
x.append(x)
try:
self.dumps(x)
except ValueError:
pass
except ValueError as exc:
self.assertEqual(exc.__notes__, ["when serializing list item 0"])
else:
self.fail("didn't raise ValueError on list recursion")
x = []
@ -21,8 +21,8 @@ class TestRecursion:
x.append(y)
try:
self.dumps(x)
except ValueError:
pass
except ValueError as exc:
self.assertEqual(exc.__notes__, ["when serializing list item 0"]*2)
else:
self.fail("didn't raise ValueError on alternating list recursion")
y = []
@ -35,8 +35,8 @@ class TestRecursion:
x["test"] = x
try:
self.dumps(x)
except ValueError:
pass
except ValueError as exc:
self.assertEqual(exc.__notes__, ["when serializing dict item 'test'"])
else:
self.fail("didn't raise ValueError on dict recursion")
x = {}
@ -60,8 +60,10 @@ class TestRecursion:
enc.recurse = True
try:
enc.encode(JSONTestObject)
except ValueError:
pass
except ValueError as exc:
self.assertEqual(exc.__notes__,
["when serializing list item 0",
"when serializing type object"])
else:
self.fail("didn't raise ValueError on default recursion")