I have a class that looks like<div><br></div><div>class Foo(object):</div><div>    def iter(descending=False):</div><div>        for r in something_iterable:</div><div>            yield r</div><div><br></div><div><br></div>
<div>I would like to mock the class and patch Foo.iter. I have tried a number of things without luck. </div><div><br></div><div><div>class TestFoo(PatchedTestCase):</div><div>    _partitions = []</div><div><br></div><div>
    def partitions(self):</div><div>        for p in self._partitions:</div><div>            yield p</div><div><br></div><div>    def postSetUpPreRun(self):</div><div>        self._partitions = [ 1, 2, 3, 4  ]</div><div>        rw = Mock(spec=Foo)</div>
<div>        self.mock_RollingWindow = rw</div><div>        rw.iter = Mock()</div><div>        rw.iter.side_effect = self.partitions</div><div><br></div></div><div>This is following the pattern I&#39;ve used for other methods, but doesn&#39;t work for an iterator... so, what is the proper approach please?</div>
<div><br></div><div>Andrew</div>