<div dir="ltr">What am I doing wrong here?<div><br></div><div style>&gt;&gt;&gt; import mock</div><div><div>&gt;&gt;&gt; fn = mock.Mock()</div><div>&gt;&gt;&gt; fn.side_effect = [1,2]</div><div>&gt;&gt;&gt; fn(), fn()</div>
<div>(1, 2)</div><div><br></div><div style>but</div><div><br></div><div>&gt;&gt;&gt; fn = mock.create_autospec(lambda: None)</div><div>&gt;&gt;&gt; fn.side_effect = [1,2]</div><div>&gt;&gt;&gt; fn(), fn()</div><div>Traceback (most recent call last):</div>
<div>  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;</div><div>  File &quot;&lt;string&gt;&quot;, line 3, in funcopy</div><div>  File &quot;mock.py&quot;, line 974, in __call__</div><div>    return _mock_self._mock_call(*args, **kwargs)</div>
<div>  File &quot;mock.py&quot;, line 1031, in _mock_call</div><div>    result = next(effect)</div><div>TypeError: list object is not an iterator</div></div><div><br></div><div style>whereas</div><div style><br></div><div style>
<div>&gt;&gt;&gt; fn = mock.create_autospec(lambda: None, side_effect=[1,2])</div><div>&gt;&gt;&gt; fn(), fn()</div><div>(1, 2)</div><div><br></div></div></div>