Я хочу смоделировать объект на Фабрике и получить ошибку «Я получаю ошибку:
TypeError: аргумент super () 1 должен иметь тип, а не MagicMock.".
Я прочитал пост: super () завершается с ошибкой: TypeError "аргумент 1 должен быть типом, а не classobj", когда родительский объект не наследуется от объекта , но я не знаюкак я должен получить MagicMock из объекта.
Мой код выглядит следующим образом:
from unittest.mock import patch
class B():
pass
class A(B):
pass
class AFactory:
def create(self):
a = A()
super(A, a).__init__()
with patch('mymain.A'):
AFactory().create()
Ошибка:
TypeError: super() argument 1 must be type, not MagicMock
В чем причина этой проблемы?Я использую фабрику для «А», потому что я могу делать лучшие интеграционные тесты, если у меня супер фабрика, названная отдельно на фабрике.