32 lines
		
	
	
		
			609 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			609 B
		
	
	
	
		
			Python
		
	
	
	
from py.test import raises
 | 
						|
from py.magic import patch, revert
 | 
						|
 | 
						|
def test_patch_revert():
 | 
						|
    class a:
 | 
						|
        pass
 | 
						|
    raises(AttributeError, "patch(a, 'i', 42)")
 | 
						|
 | 
						|
    a.i = 42
 | 
						|
    patch(a, 'i', 23)
 | 
						|
    assert a.i == 23
 | 
						|
    revert(a, 'i')
 | 
						|
    assert a.i == 42
 | 
						|
 | 
						|
def test_double_patch():
 | 
						|
    class a:
 | 
						|
        i = 42
 | 
						|
    assert patch(a, 'i', 2) == 42
 | 
						|
    assert patch(a, 'i', 3) == 2
 | 
						|
    assert a.i == 3
 | 
						|
    assert revert(a, 'i') == 3
 | 
						|
    assert a.i == 2
 | 
						|
    assert revert(a, 'i') == 2
 | 
						|
    assert a.i == 42
 | 
						|
 | 
						|
def test_valueerror():
 | 
						|
    class a:
 | 
						|
        i = 2
 | 
						|
        pass
 | 
						|
    raises(ValueError, "revert(a, 'i')")
 | 
						|
 |