Доступ к исправленному объекту в @classmethod

Я хотел бы установить побочный эффект для исправленного объекта в TestCase.setUpClass() метод, чтобы побочный эффект сохранялся в течение всего периода испытаний без необходимости устанавливать его для каждого теста с помощью setUp(),

Как я могу получить доступ к патчу в @classmethod?

@patch('my_module.auxiliary_module', autospec=True)
class TestMyModule(TestCase):
    @classmethod
    def setUpClass(cls):
        # how can I access the patch here to set a side-effect?

    def test_a(self, mock_auxiliary_module):
        # here the patch is accessible

Пример того, что я хотел бы сделать в setUpClass():

mock_auxiliary_module.some_func.side_effect = lambda x: {'a': 2, 'b': 5}[x]

1 ответ

Сделайте его атрибутом класса, чтобы вы могли получить к нему доступ cls.my_obj в setUpClass, или же self.my_obj в других методах испытаний?

Я не знаком с исправлениями, так что это может быть далеко от цели.

Другие вопросы по тегам