Скажем, у меня такая ситуация:обезьяна латание класса в функцию, которая вызывается из метода ребенка (Python)
module2.py
class Bar:
def bar():
a = 5
# do stuff
Messages.show("Done")
module1.py
import module2
class Foo:
def __init__(self):
self.bar = module2.Bar()
def foo(self):
self.bar.bar()
Я хочу протестировать метод Foo.foo(), но я хочу игнорировать Messages.show («Готово»), т.е. хочу, чтобы звонки в сообщения .show, которая будет выполняться на макет-объекте. Если foo вызывал Message.show напрямую, я мог бы использовать monkeypatch в foo, чтобы высмеять класс Messages. Но теперь я вызываю класс из другого модуля, и я не знаю, как указать, что вызовы Messages.show не должны выполняться (причина в том, что они обращаются к Gui и не работают в тестовой среде) , Предположим, я не могу изменить module2.py.