[REF] Refactoring according to the review of CHS
[odoo/odoo.git] / openerp / tests / test_misc.py
1 # This test can be run stand-alone with something like:
2 # > PYTHONPATH=. python2 openerp/tests/test_misc.py
3
4 import unittest2
5 from ..tools import misc
6
7
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)
14
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)
21
22     def test_full(self):
23         s = misc.CountingStream(xrange(42))
24         for _ in s:
25             pass
26         self.assertEqual(s.index, 42)
27
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)
31         """
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)
37
38 if __name__ == '__main__':
39     unittest2.main()