Скажем, я использую абстрактный класс библиотеки в качестве основы для моего абстрактных базового класса, такмодульного тестирование - Mocking/подавление __init__ объекта
class LibBaseClass():
some_var = None # In any non-abstract versions of this class, this must be set
def __init__(self):
if some_var is None:
raise ImproperlyConfigured("some_var Not set!")
Теперь у меня есть свой базовый класс, который использует этот класс ...
class MyBaseClass(LibBaseClass():
some_var = None # Still None, doesn't make sense for this var to be set to anything
def my_additional_method(self):
....
Теперь, когда я пришел, чтобы испытать MyBaseClass, в методе setUp()
, я хочу, чтобы инициализировать класс, так:
my_class = MyBaseClass()
, но, конечно, это вызовет ошибку из базового класса библиотеки init(). Я ищу самый опрятный путь вокруг этой проблемы, но я не совсем уверен, что насмехается. Ошибка не важна/не будет влиять на какие-либо тесты, которые я пишу и запускаю, поэтому мне просто нужен способ обойти эту конкретную ошибку.
Значит ли '__init__' сделать что-нибудь еще, кроме проверки для этого вар? –
Нет, это просто как «Эй, ты не правильно настроил свой класс ребенка». – ptr