MagicMock return_value из аннотации типа - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть функция, аннотированная следующим образом:

class X:
     pass

def foo() -> X:
     return X()

Когда я высмеиваю эту функцию, мне бы хотелось, чтобы она возвращала объект Mock с spec, равным X. Я могу сделать это так:

mock.patch("foo", spec=True, return_value=MagicMock(X))
...
foo().bar()  # AttributeError :-)

Но я бы хотел сделать это еще так:

mock.patch("foo", spec=True)
...
foo().bar()  # No AttributeError :-(

Так, чтобы мои тесты действительно проверяли сигнатуру функции. Поскольку функция уже аннотирована типами, было бы неплохо, если бы patch смог это понять. Есть ли способ добиться этого?

...