Код: Выделить всё
a.py:
import b
def bar():
b.foo()
Код: Выделить всё
b.py:
def foo():
print("Hello from b.py")
Код: Выделить всё
test_a.py:
from a import bar
from unittest import mock
def test_bar():
with mock.patch('b.foo') as mock_foo:
bar()
mock_foo.assert_called_once()
Однако, когда файл a.py будет изменен следующим образом, где функция foo импортирован непосредственно из модуля b, тогда издевательство завершится неудачно, и внутри панели функций будет вызвана исходная, не издевающаяся функция foo:
Код: Выделить всё
from b import foo
def bar():
foo()
Подробнее здесь: https://stackoverflow.com/questions/788 ... om-keyword