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