Издевательство над вызовом вложенной функции с помощью pytestPython

Программы на Python
Anonymous
Издевательство над вызовом вложенной функции с помощью pytest

Сообщение Anonymous »

Если у меня есть тестируемая функция A1, и эта функция импортирует и вызывает функцию B1, которая сама вызывает B2 из того же файла, как мне имитировать функцию B2?
Если я издеваюсь с помощью thrower.patch('B.B2', return_value=return_value), издеваемая функция не вызывается. Если я издеваюсь над «A.B2», «A.B1.B2», «A.B.B2» или чем-то в этом роде, я получаю ошибки, потому что их не существует. Я понимаю, что если бы я хотел издеваться над B1 в этой ситуации, я бы издевался над «A.B1» из-за того, как он импортируется и где он используется, но я не могу найти способ издеваться над B2, который вызывается внутри B1.
Для наглядности расположение файла следующее.
Файл B
def B2():
# does a thing, should be mocked

def B1():
B2()

Файл A
from B import B1

def A1():
B1()

Тестовый файл
def test_a1():
from A import A1
A1()


Подробнее здесь: https://stackoverflow.com/questions/790 ... ith-pytest

Вернуться в «Python»