Я пишу тесты для моделей, которые запускают различные функции, которые go выходят за рамки тестирования (некоторые функции вызывают сетевую функциональность и другие нежелательные вещи, которые не являются частью теста, могут быть медленными, чтобы просто запустить и легче просто выключить для целей тестирования). Мы делаем это, используя серию декораторов @patch над каждой тестовой функцией по мере необходимости.
Мне не нравится помещать одинаковые декораторы над каждой тестовой функцией в тестовом классе, потому что они загромождают код. Можно ли переместить все мои патчи в функцию и просто вызвать ее оттуда? Я попробовал простую реализацию, как показано ниже, но она не сработала для меня:
from unittest.mock import patch
class MyTest(APITestCase):
def patch_all(self):
p1 = patch('mod1.func1')
p2 = patch('mod1.func2')
...
return (p1, p2, ...)
def test_function(self):
p1, p2, ... = self.patch_all()
perform_actual_test()
Есть ли способ исправления функций без написания декораторов повсюду и просто вызова функции вместо этого?