Я хочу создать метод макета, который вызывает метод, из которого вы издеваетесь.Как вызвать метод mocked в Python mock
Я что-то вроде следующего воображая, но я не могу найти никакой документации о макете объект, содержащий ссылку на объект дразнят, который я назвал, как [[wrapped_method_foo]]
ниже:
from mock import patch
class Foo(object):
def __init__(self, state):
self.state = state
def foo(self, a):
print "real foo", a
return a + self.state
f = Foo(2000)
f.foo(1)
with patch.object(Foo, 'foo', autospec=True) as mock_foo:
def side_effect(self, a):
print "mock foo", a
return mock_foo.[[wrapped_method_foo]](self, a*2)
mock_foo.side_effect = side_effect
f.foo(2)
Спасибо Эрин. Мне пришлось немного изменить, чтобы заставить его работать. Но я начинаю сомневаться в том, является ли мое первоначальное намерение использовать макетный объект таким образом, это хорошая идея. – cbare