Невозможно имитировать вызов функции в Python

Я пишу модульные тесты для своего приложения, которое использует api Facebook Ads. Я пытаюсь имитировать функцию удаленного создания, используя следующее:

CustomAudience.remote_create = Mock(return_value="some value")

Однако, когда я вызываю remote_create на экземпляре CustomAudience, кажется, что вызывает фактическую функцию, поскольку я получаю исключение из-за не установленного api. Насколько я понимаю, это издевательский обычай.remote_create таким образом должен вызывать макет всякий раз, когда эта функция вызывается на экземпляре.

Я обнаружил, что насмешливые функции в моем собственном классе таким образом работали хорошо, однако он не работает с функцией remote_create.

Есть ли некоторые функции в Python, которые не могут быть высмеяны? Например, как в Java вы не можете издеваться над окончательными классами?

1 ответ