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