Пример кода:
Код: Выделить всё
from unittest.mock import Mock
class Foo:
def print1(self) -> None:
print("print1 called") # I see this print message
self.print2()
def print2(self) -> None:
print("print2 called") # I see this print message
foo = Foo()
foo_mock = Mock(wraps=foo)
foo_mock.print1()
foo_mock.print1.assert_called() # OK
foo_mock.print2.assert_called() # NOT OK
Это ожидаемое поведение? Обычно self привязан к вызывающему объекту. Это означает, что должен быть передан экземпляр типа Mock. Я предполагаю, что проблема в том, что экземпляр уже был создан, и поэтому все методы были привязаны к немакетированному экземпляру. Я ожидаю, что это будет изменено __init__ Mock.
Есть ли какое-нибудь решение этой проблемы? Я делаю что-то не так?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ther-metho