У меня есть функция, аннотированная следующим образом:
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
смог это понять. Есть ли способ добиться этого?