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