]>
Commit | Line | Data |
---|---|---|
3257aa99 DM |
1 | from json.tests import PyTest, CTest\r |
2 | \r | |
3 | \r | |
4 | def default_iterable(obj):\r | |
5 | return list(obj)\r | |
6 | \r | |
7 | class TestCheckCircular(object):\r | |
8 | def test_circular_dict(self):\r | |
9 | dct = {}\r | |
10 | dct['a'] = dct\r | |
11 | self.assertRaises(ValueError, self.dumps, dct)\r | |
12 | \r | |
13 | def test_circular_list(self):\r | |
14 | lst = []\r | |
15 | lst.append(lst)\r | |
16 | self.assertRaises(ValueError, self.dumps, lst)\r | |
17 | \r | |
18 | def test_circular_composite(self):\r | |
19 | dct2 = {}\r | |
20 | dct2['a'] = []\r | |
21 | dct2['a'].append(dct2)\r | |
22 | self.assertRaises(ValueError, self.dumps, dct2)\r | |
23 | \r | |
24 | def test_circular_default(self):\r | |
25 | self.dumps([set()], default=default_iterable)\r | |
26 | self.assertRaises(TypeError, self.dumps, [set()])\r | |
27 | \r | |
28 | def test_circular_off_default(self):\r | |
29 | self.dumps([set()], default=default_iterable, check_circular=False)\r | |
30 | self.assertRaises(TypeError, self.dumps, [set()], check_circular=False)\r | |
31 | \r | |
32 | \r | |
33 | class TestPyCheckCircular(TestCheckCircular, PyTest): pass\r | |
34 | class TestCCheckCircular(TestCheckCircular, CTest): pass\r |