Как я могу получить доступ к возвращаемому значению исправленного метода при использовании 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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