diff options
Diffstat (limited to 'lib/python2.7/json/tests/test_check_circular.py')
-rw-r--r-- | lib/python2.7/json/tests/test_check_circular.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/python2.7/json/tests/test_check_circular.py b/lib/python2.7/json/tests/test_check_circular.py new file mode 100644 index 0000000..3ad3d24 --- /dev/null +++ b/lib/python2.7/json/tests/test_check_circular.py @@ -0,0 +1,34 @@ +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 |