Я хочу протестировать модуль A
, который использует декораторы с аргументами. Аргументы оцениваются при загрузке модуля A
. Для некоторых аргументов декоратора я устанавливаю значение, вызывая функцию foo
в модуле B
.
# A.py
import B
@deco(arg1=B.foo())
def bar():
...
Когда я хочу протестировать A
, я хочу имитировать B.foo
, чтобы аргумент декоратора был установлен для моих тестовых случаев. Я думаю, что B.foo
нужно издеваться до того, как A
загрузит B
.
В модульном тесте, как вызывающая сторона A
, как мне имитировать B.foo
, чтобы убедиться, что фиктивная версия используется при оценке аргументов декоратора в A
?