Декоратор макета патча asynctest Python распространяется на последующие тесты
Я пытаюсь протестировать асинхронную функцию. Для этого я используюpytest-asyncio
а также asynctest
. Мне нужно проверить, сколько раз вызывается функция, которая используется внутри функции, которую я тестирую. Для этого я издеваюсь над внутренней функцией, используяaynsctest.mock.patch()
. Мой тестовый файл выглядит следующим образом:
@pytest.mark.asyncio
@aynsctest.mock.patch('my_module.function_name')
async def test_function_called_twice(function_mock):
await function_to_be_tested()
assert function_mock.call_count == 2
@pytest.mark.asyncio
@aynsctest.mock.patch('my_module.function_name')
async def test_function_called_once(function_mock):
await function_to_be_tested()
assert function_mock.call_count == 1
Если я запускаю тестовые примеры отдельно, они проходят. Однако, когда я запускаю весь модуль, второй запускаемый тестовый пример терпит неудачу - независимо от того, в каком порядке они выполняются. Я подозреваю, что это связано с тем, что макет из первого тестового примера по-прежнему влияет на запуск второго тестового примера.
Что я здесь неправильно делаю?