31 lines
917 B
Python
31 lines
917 B
Python
|
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)
|