| from unittest import TestCase |
| import simplejson as json |
| |
| def default_iterable(obj): |
| return list(obj) |
| |
| class TestCheckCircular(TestCase): |
| def test_circular_dict(self): |
| dct = {} |
| dct['a'] = dct |
| self.assertRaises(ValueError, json.dumps, dct) |
| |
| def test_circular_list(self): |
| lst = [] |
| lst.append(lst) |
| self.assertRaises(ValueError, json.dumps, lst) |
| |
| def test_circular_composite(self): |
| dct2 = {} |
| dct2['a'] = [] |
| dct2['a'].append(dct2) |
| self.assertRaises(ValueError, json.dumps, dct2) |
| |
| def test_circular_default(self): |
| json.dumps([set()], default=default_iterable) |
| self.assertRaises(TypeError, json.dumps, [set()]) |
| |
| def test_circular_off_default(self): |
| json.dumps([set()], default=default_iterable, check_circular=False) |
| self.assertRaises(TypeError, json.dumps, [set()], check_circular=False) |