diff options
-rw-r--r-- | mocker.py | 6 | ||||
-rwxr-xr-x | test.py | 10 |
2 files changed, 16 insertions, 0 deletions
@@ -460,6 +460,12 @@ class MockerBase(object): """ self.call(lambda *args, **kwargs: value) + def generate(self, sequence): + def generate(*args, **kwargs): + for value in sequence: + yield value + self.call(generate) + def throw(self, exception): """Make the last recorded event raise the given exception on replay. @@ -127,6 +127,16 @@ class IntegrationTest(unittest.TestCase): self.assertEquals(obj.x(24), 42) self.assertEquals(calls, [24]) + def test_generate(self): + obj = self.mocker.mock() + obj.x(24) + self.mocker.generate([1, 2, 3]) + self.mocker.replay() + result = obj.x(24) + def g(): yield None + self.assertEquals(type(result), type(g())) + self.assertEquals(list(result), [1, 2, 3]) + def test_proxy(self): class C(object): def sum(self, *args): |