1
, foo.narf . foo.narf - - MagicMock. _mock_wraps, mock! , , _narf = foo.narf foo.narf._mock_wraps = _narf.
, , , , (, , " " ). , ( ), _mock_wraps() , .
2
patch() patcher ( ), patchings, . self.test_foo.patchings , , .
start() stop() , patch() , , . .
class unpatch:
def __init__(self, name, method):
compare = patch(name)
self.patcher = next((
p for p in method.patchings
if p.target == compare.getter()
and p.attribute == compare.attribute
), None)
if self.patcher is None:
raise ValueError(name)
def __enter__(self):
self.patcher.__exit__()
def __exit__(self, *exc_info):
self.patcher.__enter__()
:
with unpatch('foo.narf', self.test_foo):
foo.narf()
: .