diff options
author | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2012-02-24 23:58:54 +0100 |
---|---|---|
committer | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2012-02-24 23:58:54 +0100 |
commit | 8a459c5e26a14a531f78d740b325c996044df760 (patch) | |
tree | 32fa813787f885a8ac59970cd65d8350c0e91551 /tests | |
parent | cbbe5cc359412c8e6c49e06d5d1f35680ad88c40 (diff) | |
download | factory-boy-8a459c5e26a14a531f78d740b325c996044df760.tar factory-boy-8a459c5e26a14a531f78d740b325c996044df760.tar.gz |
Add the Iterator and InfiniteIterator attribute kinds.
Signed-off-by: Raphaël Barrois <raphael.barrois@polytechnique.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_using.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/test_using.py b/tests/test_using.py index 4e69212..41b34ea 100644 --- a/tests/test_using.py +++ b/tests/test_using.py @@ -760,5 +760,51 @@ class SubFactoryTestCase(unittest.TestCase): self.assertEqual(outer.side_a.inner_from_a.b, 4) +class IteratorTestCase(unittest.TestCase): + + def test_iterator(self): + class TestObjectFactory(factory.Factory): + one = factory.Iterator(xrange(10, 30)) + + objs = TestObjectFactory.build_batch(20) + + for i, obj in enumerate(objs): + self.assertEqual(i + 10, obj.one) + + def test_infinite_iterator(self): + class TestObjectFactory(factory.Factory): + one = factory.InfiniteIterator(xrange(5)) + + objs = TestObjectFactory.build_batch(20) + + for i, obj in enumerate(objs): + self.assertEqual(i % 5, obj.one) + + def test_iterator_decorator(self): + class TestObjectFactory(factory.Factory): + @factory.iterator + def one(): + for i in xrange(10, 50): + yield i + + objs = TestObjectFactory.build_batch(20) + + for i, obj in enumerate(objs): + self.assertEqual(i + 10, obj.one) + + def test_infinite_iterator_decorator(self): + class TestObjectFactory(factory.Factory): + @factory.infinite_iterator + def one(): + for i in xrange(5): + yield i + + objs = TestObjectFactory.build_batch(20) + + for i, obj in enumerate(objs): + self.assertEqual(i % 5, obj.one) + + + if __name__ == '__main__': unittest.main() |