mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
	
	
		
			31 lines
		
	
	
	
		
			903 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			903 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from unittest import TestCase
							 | 
						||
| 
								 | 
							
								import 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)
							 |