1 # This test can be run stand-alone with something like:
2 # > PYTHONPATH=. python2 openerp/tests/test_misc.py
5 from ..tools import misc
8 class test_countingstream(unittest2.TestCase):
9 def test_empty_stream(self):
10 s = misc.CountingStream(iter([]))
11 self.assertEqual(s.index, -1)
12 self.assertIsNone(next(s, None))
13 self.assertEqual(s.index, 0)
15 def test_single(self):
16 s = misc.CountingStream(xrange(1))
17 self.assertEqual(s.index, -1)
18 self.assertEqual(next(s, None), 0)
19 self.assertIsNone(next(s, None))
20 self.assertEqual(s.index, 1)
23 s = misc.CountingStream(xrange(42))
26 self.assertEqual(s.index, 42)
28 def test_repeated(self):
29 """ Once the CountingStream has stopped iterating, the index should not
30 increase anymore (the internal state should not be allowed to change)
32 s = misc.CountingStream(iter([]))
33 self.assertIsNone(next(s, None))
34 self.assertEqual(s.index, 0)
35 self.assertIsNone(next(s, None))
36 self.assertEqual(s.index, 0)
38 if __name__ == '__main__':