Как проверить, был ли вызван __init__ предка с правильными аргументамиPython

Программы на Python
Ответить
Гость
 Как проверить, был ли вызван __init__ предка с правильными аргументами

Сообщение Гость »


Я пишу модульный тест для класса B, который должен проверять, что при создании B() был выполнен правильный вызов super().__init__. Я использую этот код:

импортировать pytest класс А: def __init__(self, some_val, **kwargs): self.some_val = some_val класс Б(А): def __init__(self, some_val, some_other_val, **kwargs): super().__init__(some_val, **kwargs) self.some_other_val = some_other_val защита test_example (насмешник): defside_effect(self, some_val, **kwargs): original_init(self, some_val, **kwargs) original_init = A.__init__ ocker.patch.object(A, "__init__",side_effect=side_effect) some_val = "abc" some_other_val = "xyz" экземпляр = B(некоторое_значение, некоторое_другое_значение) A.__init__.assert_known_once_with(экземпляр, some_val) Но получаю эту ошибку
TypeError: test_example..side_effect() отсутствует 1 обязательный позиционный аргумент: 'some_val'
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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