c3acc70b15f966ceaeb7c0eb6140f78e3b8863be
[tiramisu.git] / test / test_storage.py
1 # coding: utf-8
2 import autopath
3 #from py.test import raises
4
5 from tiramisu.config import Config
6 from tiramisu.option import BoolOption, OptionDescription
7 from tiramisu.setting import owners
8 from tiramisu.storage import list_sessions, delete_session
9 from tiramisu import setting
10
11 setting.expires_time = 0
12
13 def test_non_persistent():
14     b = BoolOption('b', '')
15     o = OptionDescription('od', '', [b])
16     Config(o, session_id='test_non_persistent')
17
18
19 def test_list():
20     b = BoolOption('b', '')
21     o = OptionDescription('od', '', [b])
22     c = Config(o, session_id='test_non_persistent')
23     assert 'test_non_persistent' in list_sessions()
24     del(c)
25     assert 'test_non_persistent' not in list_sessions()
26
27
28 def test_create_persistent():
29     b = BoolOption('b', '')
30     o = OptionDescription('od', '', [b])
31     try:
32         Config(o, session_id='test_persistent', persistent=True)
33     except ValueError:
34         # storage is not persistent
35         pass
36
37
38 def test_list_sessions_persistent():
39     b = BoolOption('b', '')
40     o = OptionDescription('od', '', [b])
41     try:
42         Config(o, session_id='test_persistent', persistent=True)
43     except ValueError:
44         # storage is not persistent
45         pass
46     else:
47         assert 'test_persistent' in list_sessions()
48
49
50 def test_delete_session_persistent():
51     b = BoolOption('b', '')
52     o = OptionDescription('od', '', [b])
53     try:
54         Config(o, session_id='test_persistent', persistent=True)
55     except ValueError:
56         # storage is not persistent
57         pass
58     else:
59         assert 'test_persistent' in list_sessions()
60         delete_session('test_persistent')
61         assert 'test_persistent' not in list_sessions()
62
63
64 def test_create_persistent_retrieve():
65     b = BoolOption('b', '')
66     o = OptionDescription('od', '', [b])
67     try:
68         c = Config(o, session_id='test_persistent', persistent=True)
69     except ValueError:
70         # storage is not persistent
71         pass
72     else:
73         assert c.b is None
74         c.b = True
75         assert c.b is True
76         del(c)
77         c = Config(o, session_id='test_persistent', persistent=True)
78         assert c.b is True
79         assert 'test_persistent' in list_sessions()
80         delete_session('test_persistent')
81         c = Config(o, session_id='test_persistent', persistent=True)
82         assert c.b is None
83         delete_session('test_persistent')
84
85
86 def test_two_persistent():
87     b = BoolOption('b', '')
88     o = OptionDescription('od', '', [b])
89     try:
90         c = Config(o, session_id='test_persistent', persistent=True)
91     except ValueError:
92         # storage is not persistent
93         pass
94     else:
95         c2 = Config(o, session_id='test_persistent', persistent=True)
96         assert c.b is None
97         assert c2.b is None
98         c.b = False
99         assert c.b is False
100         assert c2.b is False
101         c.b = True
102         assert c.b is True
103         assert c2.b is True
104         delete_session('test_persistent')
105
106
107 def test_two_persistent_owner():
108     b = BoolOption('b', '')
109     o = OptionDescription('od', '', [b])
110     try:
111         c = Config(o, session_id='test_persistent', persistent=True)
112     except ValueError:
113         # storage is not persistent
114         pass
115     else:
116         c2 = Config(o, session_id='test_persistent', persistent=True)
117         owners.addowner('persistent')
118         assert c.getowner(b) == owners.default
119         assert c2.getowner(b) == owners.default
120         c.b = False
121         assert c.getowner(b) == owners.user
122         assert c2.getowner(b) == owners.user
123         c.cfgimpl_get_values().setowner(b, owners.persistent)
124         assert c.getowner(b) == owners.persistent
125         assert c2.getowner(b) == owners.persistent
126         delete_session('test_persistent')
127
128
129 def test_two_persistent_information():
130     b = BoolOption('b', '')
131     o = OptionDescription('od', '', [b])
132     try:
133         c = Config(o, session_id='test_persistent', persistent=True)
134     except ValueError:
135         # storage is not persistent
136         pass
137     else:
138         c.impl_set_information('info', 'string')
139         assert c.impl_get_information('info') == 'string'
140         c2 = Config(o, session_id='test_persistent', persistent=True)
141         assert c2.impl_get_information('info') == 'string'
142         delete_session('test_persistent')