1 # This test can be run stand-alone with something like:
2 # > PYTHONPATH=. python2 openerp/tests/test_misc.py
10 from ..tools import misc
13 class test_countingstream(unittest2.TestCase):
14 def test_empty_stream(self):
15 s = misc.CountingStream(iter([]))
16 self.assertEqual(s.index, -1)
17 self.assertIsNone(next(s, None))
18 self.assertEqual(s.index, 0)
20 def test_single(self):
21 s = misc.CountingStream(xrange(1))
22 self.assertEqual(s.index, -1)
23 self.assertEqual(next(s, None), 0)
24 self.assertIsNone(next(s, None))
25 self.assertEqual(s.index, 1)
28 s = misc.CountingStream(xrange(42))
31 self.assertEqual(s.index, 42)
33 def test_repeated(self):
34 """ Once the CountingStream has stopped iterating, the index should not
35 increase anymore (the internal state should not be allowed to change)
37 s = misc.CountingStream(iter([]))
38 self.assertIsNone(next(s, None))
39 self.assertEqual(s.index, 0)
40 self.assertIsNone(next(s, None))
41 self.assertEqual(s.index, 0)
43 if __name__ == '__main__':