Как я могу получить доступ к возвращаемому значению исправленного метода при использовании Mock?Python

Программы на Python
Anonymous
Как я могу получить доступ к возвращаемому значению исправленного метода при использовании Mock?

Сообщение Anonymous »

Я использую Mock иside_effect для исправления метода объекта, как показано ниже. Я хотел бы получить доступ к возвращаемому значению исходного метода. Я могу использовать autospec, чтобы получить доступ к себе, но не нашел способа получить доступ к неисправленному исходному методу.

Код: Выделить всё

class Foo():

def bar(self):
return "bar"

def mocked_bar(self):
return "mocked bar" + self.bar()

with patch.object(Foo, 'bar', side_effect=mocked_bar, autospec=True) as MockFoo:
foo_instance = Foo()
result = foo_instance.bar() # endless loop
print(result)
Предпосылка заключается в том, что я хотел бы реализовать «шпион», который регистрирует возвращаемое значение исходного непропатченного метода.

В качестве альтернативы я мог бы реализовать оболочку, которая перезаписывает метод и обращается к исходному методу через super(), но мне интересно, возможно ли это с помощью Mock.
>

Подробнее здесь: https://stackoverflow.com/questions/798 ... using-mock

Вернуться в «Python»