test_check_circular.py 917 B

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