huge use of weakrefs to remove memoryleaks due to circular references
[tiramisu.git] / test / test_storage.py
1 import autopath
2 #from py.test import raises
3
4 from tiramisu.config import Config
5 from tiramisu.option import BoolOption, OptionDescription
6
7
8 def test_non_persistent():
9     b = BoolOption('b', '')
10     o = OptionDescription('od', '', [b])
11     Config(o, session_id='test_non_persistent')
12
13
14 def test_list():
15     b = BoolOption('b', '')
16     o = OptionDescription('od', '', [b])
17     c = Config(o, session_id='test_non_persistent')
18     from tiramisu.setting import list_sessions
19     assert 'test_non_persistent' in list_sessions()
20     del(c)
21     assert 'test_non_persistent' not in list_sessions()
22
23
24 def test_create_persistent():
25     b = BoolOption('b', '')
26     o = OptionDescription('od', '', [b])
27     try:
28         Config(o, session_id='test_persistent', persistent=True)
29     except ValueError:
30         # storage is not persistent
31         pass
32
33
34 def test_list_sessions_persistent():
35     b = BoolOption('b', '')
36     o = OptionDescription('od', '', [b])
37     try:
38         Config(o, session_id='test_persistent', persistent=True)
39     except ValueError:
40         # storage is not persistent
41         pass
42     else:
43         from tiramisu.setting import list_sessions
44         assert 'test_persistent' in list_sessions()
45
46
47 def test_delete_session_persistent():
48     b = BoolOption('b', '')
49     o = OptionDescription('od', '', [b])
50     try:
51         Config(o, session_id='test_persistent', persistent=True)
52     except ValueError:
53         # storage is not persistent
54         pass
55     else:
56         from tiramisu.setting import list_sessions, delete_session
57         assert 'test_persistent' in list_sessions()
58         delete_session('test_persistent')
59         assert 'test_persistent' not in list_sessions()
60
61
62 def test_create_persistent_retrieve():
63     b = BoolOption('b', '')
64     o = OptionDescription('od', '', [b])
65     try:
66         c = Config(o, session_id='test_persistent', persistent=True)
67     except ValueError:
68         # storage is not persistent
69         pass
70     else:
71         assert c.b is None
72         c.b = True
73         assert c.b is True
74         del(c)
75         c = Config(o, session_id='test_persistent', persistent=True)
76         assert c.b is True
77         from tiramisu.setting import list_sessions, delete_session
78         assert 'test_persistent' in list_sessions()
79         delete_session('test_persistent')
80         c = Config(o, session_id='test_persistent', persistent=True)
81         assert c.b is None