storage no more in setting.py, code is now in storage/__init__.py
[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
10
11 def test_non_persistent():
12     b = BoolOption('b', '')
13     o = OptionDescription('od', '', [b])
14     Config(o, session_id='test_non_persistent')
15
16
17 def test_list():
18     b = BoolOption('b', '')
19     o = OptionDescription('od', '', [b])
20     c = Config(o, session_id='test_non_persistent')
21     assert 'test_non_persistent' in list_sessions()
22     del(c)
23     assert 'test_non_persistent' not in list_sessions()
24
25
26 def test_create_persistent():
27     b = BoolOption('b', '')
28     o = OptionDescription('od', '', [b])
29     try:
30         Config(o, session_id='test_persistent', persistent=True)
31     except ValueError:
32         # storage is not persistent
33         pass
34
35
36 def test_list_sessions_persistent():
37     b = BoolOption('b', '')
38     o = OptionDescription('od', '', [b])
39     try:
40         Config(o, session_id='test_persistent', persistent=True)
41     except ValueError:
42         # storage is not persistent
43         pass
44     else:
45         assert 'test_persistent' in list_sessions()
46
47
48 def test_delete_session_persistent():
49     b = BoolOption('b', '')
50     o = OptionDescription('od', '', [b])
51     try:
52         Config(o, session_id='test_persistent', persistent=True)
53     except ValueError:
54         # storage is not persistent
55         pass
56     else:
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         assert 'test_persistent' in list_sessions()
78         delete_session('test_persistent')
79         c = Config(o, session_id='test_persistent', persistent=True)
80         assert c.b is None
81         delete_session('test_persistent')
82
83
84 def test_two_persistent():
85     b = BoolOption('b', '')
86     o = OptionDescription('od', '', [b])
87     try:
88         c = Config(o, session_id='test_persistent', persistent=True)
89     except ValueError:
90         # storage is not persistent
91         pass
92     else:
93         c2 = Config(o, session_id='test_persistent', persistent=True)
94         assert c.b is None
95         assert c2.b is None
96         c.b = False
97         assert c.b is False
98         assert c2.b is False
99         c.b = True
100         assert c.b is True
101         assert c2.b is True
102         delete_session('test_persistent')
103
104
105 def test_two_persistent_owner():
106     b = BoolOption('b', '')
107     o = OptionDescription('od', '', [b])
108     try:
109         c = Config(o, session_id='test_persistent', persistent=True)
110     except ValueError:
111         # storage is not persistent
112         pass
113     else:
114         c2 = Config(o, session_id='test_persistent', persistent=True)
115         owners.addowner('persistent')
116         assert c.getowner(b) == owners.default
117         assert c2.getowner(b) == owners.default
118         c.b = False
119         assert c.getowner(b) == owners.user
120         assert c2.getowner(b) == owners.user
121         c.cfgimpl_get_values().setowner(b, owners.persistent)
122         assert c.getowner(b) == owners.persistent
123         assert c2.getowner(b) == owners.persistent
124         delete_session('test_persistent')
125
126
127 def test_two_persistent_information():
128     b = BoolOption('b', '')
129     o = OptionDescription('od', '', [b])
130     try:
131         c = Config(o, session_id='test_persistent', persistent=True)
132     except ValueError:
133         # storage is not persistent
134         pass
135     else:
136         c.impl_set_information('info', 'string')
137         assert c.impl_get_information('info') == 'string'
138         c2 = Config(o, session_id='test_persistent', persistent=True)
139         assert c2.impl_get_information('info') == 'string'
140         delete_session('test_persistent')