35 lines
		
	
	
		
			839 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			839 B
		
	
	
	
		
			Python
		
	
	
	
| 
 | |
| import py
 | |
| from py.__.code import safe_repr
 | |
| 
 | |
| def test_simple_repr():
 | |
|     assert safe_repr._repr(1) == '1'
 | |
|     assert safe_repr._repr(None) == 'None'
 | |
|     
 | |
| class BrokenRepr:
 | |
|     def __init__(self, ex):
 | |
|         self.ex = ex
 | |
|         foo = 0
 | |
|     def __repr__(self):
 | |
|         raise self.ex
 | |
|         
 | |
| def test_exception():
 | |
|     assert 'Exception' in safe_repr._repr(BrokenRepr(Exception("broken")))
 | |
| 
 | |
| class BrokenReprException(Exception):
 | |
|     __str__ = None 
 | |
|     __repr__ = None
 | |
|     
 | |
| def test_broken_exception():
 | |
|     assert 'Exception' in safe_repr._repr(BrokenRepr(BrokenReprException("really broken")))
 | |
| 
 | |
| def test_string_exception():
 | |
|     assert 'unknown' in safe_repr._repr(BrokenRepr("string"))
 | |
| 
 | |
| def test_big_repr():
 | |
|     assert len(safe_repr._repr(range(1000))) <= \
 | |
|            len('[' + safe_repr.SafeRepr().maxlist * "1000" + ']')
 | |
| 
 | |
|         
 | |
|     
 |