8817bb2e |
1 | from unittest import TestCase |
2 | import simplejson as json |
3 | |
4 | def default_iterable(obj): |
5 | return list(obj) |
6 | |
7 | class TestCheckCircular(TestCase): |
8 | def test_circular_dict(self): |
9 | dct = {} |
10 | dct['a'] = dct |
11 | self.assertRaises(ValueError, json.dumps, dct) |
12 | |
13 | def test_circular_list(self): |
14 | lst = [] |
15 | lst.append(lst) |
16 | self.assertRaises(ValueError, json.dumps, lst) |
17 | |
18 | def test_circular_composite(self): |
19 | dct2 = {} |
20 | dct2['a'] = [] |
21 | dct2['a'].append(dct2) |
22 | self.assertRaises(ValueError, json.dumps, dct2) |
23 | |
24 | def test_circular_default(self): |
25 | json.dumps([set()], default=default_iterable) |
26 | self.assertRaises(TypeError, json.dumps, [set()]) |
27 | |
28 | def test_circular_off_default(self): |
29 | json.dumps([set()], default=default_iterable, check_circular=False) |
30 | self.assertRaises(TypeError, json.dumps, [set()], check_circular=False) |