sources for test_patch.py [rev. unknown]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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')")