Исправление объекта в классе Factory приводит к TypeError: аргумент super () 1 должен быть типом, а не MagicMock - PullRequest
0 голосов
/ 23 марта 2019

Я хочу смоделировать объект на Фабрике и получить ошибку «Я получаю ошибку:

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

В чем причина этой проблемы?Я использую фабрику для «А», потому что я могу делать лучшие интеграционные тесты, если у меня супер фабрика, названная отдельно на фабрике.

...