[TIP] Using Mock to patch an iterator / generator?
Andrew Hammond
andrew.george.hammond at gmail.com
Thu Jun 9 16:08:40 PDT 2011
I have a class that looks like
class Foo(object):
def iter(descending=False):
for r in something_iterable:
yield r
I would like to mock the class and patch Foo.iter. I have tried a number of
things without luck.
class TestFoo(PatchedTestCase):
_partitions = []
def partitions(self):
for p in self._partitions:
yield p
def postSetUpPreRun(self):
self._partitions = [ 1, 2, 3, 4 ]
rw = Mock(spec=Foo)
self.mock_RollingWindow = rw
rw.iter = Mock()
rw.iter.side_effect = self.partitions
This is following the pattern I've used for other methods, but doesn't work
for an iterator... so, what is the proper approach please?
Andrew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20110609/618ba73a/attachment.htm>
More information about the testing-in-python
mailing list