Files
rk35xx-android14/external/python/cpython2/Lib/json/tests/test_check_circular.py
T
hmz007 36ed224bac Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a)
Signed-off-by: hmz007 <hmz007@gmail.com>
Change-Id: Ib87fdbe7a0be7dc961af3500fe9ea4589a127f9f
2024-10-29 18:12:02 +08:00

35 lines
1015 B
Python

from json.tests import PyTest, CTest
def default_iterable(obj):
return list(obj)
class TestCheckCircular(object):
def test_circular_dict(self):
dct = {}
dct['a'] = dct
self.assertRaises(ValueError, self.dumps, dct)
def test_circular_list(self):
lst = []
lst.append(lst)
self.assertRaises(ValueError, self.dumps, lst)
def test_circular_composite(self):
dct2 = {}
dct2['a'] = []
dct2['a'].append(dct2)
self.assertRaises(ValueError, self.dumps, dct2)
def test_circular_default(self):
self.dumps([set()], default=default_iterable)
self.assertRaises(TypeError, self.dumps, [set()])
def test_circular_off_default(self):
self.dumps([set()], default=default_iterable, check_circular=False)
self.assertRaises(TypeError, self.dumps, [set()], check_circular=False)
class TestPyCheckCircular(TestCheckCircular, PyTest): pass
class TestCCheckCircular(TestCheckCircular, CTest): pass