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" + ']')
 | 
						|
 | 
						|
        
 | 
						|
    
 |