Как проверить, был ли вызван __init__ предка с правильными аргументами ⇐ 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'
Я пишу модульный тест для класса 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'
Мобильная версия