[MERGE] forward port of branch saas-3 up to revid 5060 chs@openerp.com-20140206131116...
[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 import datetime
4 import locale
5 import unittest2
6
7 import babel
8 import babel.dates
9
10 from ..tools import misc
11
12
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)
19
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)
26
27     def test_full(self):
28         s = misc.CountingStream(xrange(42))
29         for _ in s:
30             pass
31         self.assertEqual(s.index, 42)
32
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)
36         """
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)
42
43 if __name__ == '__main__':
44     unittest2.main()