Implement initial Python bindings for Open vSwitch database.
[sliver-openvswitch.git] / ovsdb / simplejson / tests / test_check_circular.py
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)