Получить параметры вызова из возвращенного объекта MagicMock - PullRequest
1 голос
/ 15 октября 2019

Вызов метода объекта MagicMock возвращает другой объект MagicMock.

>>> from unittest.mock import MagicMock
>>> mock = MagicMock()
>>> a = mock.foo('A', 1)
>>> a
<MagicMock name='mock.foo()' id='50553184'>

Возможно ли получить параметры вызова ('A', 1 в моем примере) из возвращенного объекта?

Возвращенный объект не был вызван (был только его родитель), поэтому все эти *call* методы и свойства, такие как called, assert_called() или mock_calls, не могут использоваться.

>>> del mock
>>> a
<MagicMock name='mock.foo()' id='50553184'>
>>> a.called
False
>>> a.mock_calls
[]
>>> 

В моей программе трудно получить доступ к родительскому макету, поскольку это уже сотый дочерний элемент оригинального объекта MagicMock, который я создал. Я считаю, что утверждения в возвращаемом объекте более убедительны, чем поиск родительского объекта в иерархии, поскольку это может привести к проверке другого вызова.

...