16 |
16 |
17 """ |
17 """ |
18 Test the configuration |
18 Test the configuration |
19 """ |
19 """ |
20 import unittest |
20 import unittest |
21 import string |
21 |
22 import sys,os |
22 |
23 import __init__ |
23 from cone.public import api |
24 |
|
25 from cone.public import api,exceptions,utils |
|
26 from cone.storage import stringstorage |
24 from cone.storage import stringstorage |
|
25 |
|
26 class TestFolder(unittest.TestCase): |
|
27 storage_class = stringstorage.StringStorage |
|
28 def setUp(self): |
|
29 self.store = self.storage_class.open("temp/layertest.pk","w") |
|
30 |
|
31 def test_create_folder(self): |
|
32 folder = api.Folder(self.store, "subfolder") |
|
33 self.assertTrue(folder) |
|
34 |
|
35 def test_get_path(self): |
|
36 folder = api.Folder(self.store, "foo") |
|
37 self.assertEquals(folder.get_current_path(),"foo") |
|
38 |
|
39 def test_open_resource(self): |
|
40 folder = api.Folder(self.store, "foo") |
|
41 res = folder.open_resource("confml/test.confml","w") |
|
42 res.write("foo.conf") |
|
43 res.close() |
|
44 self.assertEquals(folder.list_resources("", recurse=True),["confml/test.confml"]) |
|
45 self.assertEquals(self.store.list_resources("", recurse=True),["foo/confml/test.confml"]) |
|
46 |
|
47 def test_open_non_existing_resource(self): |
|
48 folder = api.Folder(self.store, "foo") |
|
49 try: |
|
50 folder.open_resource("confml/test.confml","r") |
|
51 except Exception: |
|
52 pass |
|
53 self.assertEquals(folder.storage.curpath, '') |
|
54 |
|
55 def test_create_two_layers_and_open_resource(self): |
|
56 foo_folder = api.Folder(self.store, "foo") |
|
57 bar_folder = api.Folder(self.store, "bar") |
|
58 res = foo_folder.open_resource("confml/test.confml","w") |
|
59 res.write("foo.conf") |
|
60 res.close() |
|
61 res = foo_folder.open_resource("root.confml","w") |
|
62 res.close() |
|
63 res = bar_folder.open_resource("confml/root.confml","w") |
|
64 res.write("foo.conf") |
|
65 res.close() |
|
66 self.assertEquals(foo_folder.list_resources("", recurse=True),[ 'root.confml', |
|
67 'confml/test.confml']) |
|
68 self.assertEquals(self.store.list_resources("", recurse=True),['bar/confml/root.confml', |
|
69 'foo/root.confml', |
|
70 'foo/confml/test.confml']) |
|
71 foo_folder.delete_resource("confml/test.confml") |
|
72 self.assertEquals(foo_folder.list_resources("", recurse=True),["root.confml"]) |
|
73 self.assertEquals(self.store.list_resources("", recurse=True),["bar/confml/root.confml", |
|
74 "foo/root.confml"]) |
|
75 |
27 |
76 |
28 class TestLayer(unittest.TestCase): |
77 class TestLayer(unittest.TestCase): |
29 storage_class = stringstorage.StringStorage |
78 storage_class = stringstorage.StringStorage |
|
79 def setUp(self): |
|
80 self.store = self.storage_class.open("temp/layertest.pk","w") |
30 |
81 |
31 def test_create_layer(self): |
82 def test_create_layer(self): |
32 store = self.storage_class.open("temp/layertest.pk","w") |
83 layer = api.Layer(self.store, "foo") |
33 layer = api.Layer(store, "foo") |
|
34 self.assertTrue(layer) |
84 self.assertTrue(layer) |
35 |
85 |
36 # def test_create_layer_with_kwargs(self): |
86 # def test_create_layer_with_kwargs(self): |
37 # store = self.storage_class.open("temp/layertest.pk","w") |
87 # self.store = self.storage_class.open("temp/layertest.pk","w") |
38 # layer = api.Layer(store, "foo",confml_path="foobar", implml_path="") |
88 # layer = api.Layer(self.store, "foo",confml_path="foobar", implml_path="") |
39 # self.assertTrue(layer) |
89 # self.assertTrue(layer) |
40 # self.assertEquals(layer.confml_folder.get_current_path(),"foo/foobar") |
90 # self.assertEquals(layer.confml_folder.get_current_path(),"foo/foobar") |
41 # self.assertEquals(layer.implml_folder.get_current_path(),"foo") |
91 # self.assertEquals(layer.implml_folder.get_current_path(),"foo") |
42 # layer = api.Layer(store, "foo",confml_path="f", implml_path="test", content_path="data", doc_path="foo") |
92 # layer = api.Layer(self.store, "foo",confml_path="f", implml_path="test", content_path="data", doc_path="foo") |
43 # self.assertEquals(layer.confml_folder.get_current_path(),"foo/f") |
93 # self.assertEquals(layer.confml_folder.get_current_path(),"foo/f") |
44 # self.assertEquals(layer.implml_folder.get_current_path(),"foo/test") |
94 # self.assertEquals(layer.implml_folder.get_current_path(),"foo/test") |
45 # self.assertEquals(layer.content_folder.get_current_path(),"foo/data") |
95 # self.assertEquals(layer.content_folder.get_current_path(),"foo/data") |
46 # self.assertEquals(layer.doc_folder.get_current_path(),"foo/foo") |
96 # self.assertEquals(layer.doc_folder.get_current_path(),"foo/foo") |
47 # layer = api.Layer(store, "foo") |
97 # layer = api.Layer(self.store, "foo") |
48 # self.assertEquals(layer.confml_folder.get_current_path(),"foo/confml") |
98 # self.assertEquals(layer.confml_folder.get_current_path(),"foo/confml") |
49 # self.assertEquals(layer.implml_folder.get_current_path(),"foo/implml") |
99 # self.assertEquals(layer.implml_folder.get_current_path(),"foo/implml") |
50 # self.assertEquals(layer.content_folder.get_current_path(),"foo/content") |
100 # self.assertEquals(layer.content_folder.get_current_path(),"foo/content") |
51 # self.assertEquals(layer.doc_folder.get_current_path(),"foo/doc") |
101 # self.assertEquals(layer.doc_folder.get_current_path(),"foo/doc") |
52 |
102 |
53 def test_get_path(self): |
103 def test_get_path(self): |
54 store = self.storage_class.open("temp/layertest.pk","w") |
104 layer = api.Layer(self.store, "foo") |
55 layer = api.Layer(store, "foo") |
|
56 self.assertTrue(layer) |
105 self.assertTrue(layer) |
57 self.assertEquals(layer.get_current_path(),"foo") |
106 self.assertEquals(layer.get_current_path(),"foo") |
58 |
107 |
59 def test_open_resource(self): |
108 def test_open_resource(self): |
60 store = self.storage_class.open("temp/layertest.pk","w") |
109 layer = api.Layer(self.store, "foo") |
61 layer = api.Layer(store, "foo") |
|
62 self.assertTrue(layer) |
110 self.assertTrue(layer) |
63 res = layer.open_resource("confml/test.confml","w") |
111 res = layer.open_resource("confml/test.confml","w") |
64 res.write("foo.conf") |
112 res.write("foo.conf") |
65 res.close() |
113 res.close() |
66 self.assertEquals(layer.list_resources("", True),["confml/test.confml"]) |
114 self.assertEquals(layer.list_resources("", recurse=True),["confml/test.confml"]) |
67 self.assertEquals(store.list_resources("", True),["foo/confml/test.confml"]) |
115 self.assertEquals(self.store.list_resources("", recurse=True),["foo/confml/test.confml"]) |
68 |
116 |
69 def test_create_two_layers_and_open_resource(self): |
117 def test_create_two_layers_and_open_resource(self): |
70 store = self.storage_class.open("temp/layertest.pk","w") |
118 foo_layer = api.Layer(self.store, "foo") |
71 foo_layer = api.Layer(store, "foo") |
119 bar_layer = api.Layer(self.store, "bar") |
72 bar_layer = api.Layer(store, "bar") |
|
73 res = foo_layer.open_resource("confml/test.confml","w") |
120 res = foo_layer.open_resource("confml/test.confml","w") |
74 res.write("foo.conf") |
121 res.write("foo.conf") |
75 res.close() |
122 res.close() |
76 res = foo_layer.open_resource("root.confml","w") |
123 res = foo_layer.open_resource("root.confml","w") |
77 res.close() |
124 res.close() |
78 res = bar_layer.open_resource("confml/root.confml","w") |
125 res = bar_layer.open_resource("confml/root.confml","w") |
79 res.write("foo.conf") |
126 res.write("foo.conf") |
80 res.close() |
127 res.close() |
81 self.assertEquals(foo_layer.list_resources("", True),['confml/test.confml', 'root.confml']) |
128 self.assertEquals(foo_layer.list_resources("", recurse=True),['root.confml', 'confml/test.confml']) |
82 self.assertEquals(store.list_resources("", True),['bar/confml/root.confml','foo/confml/test.confml','foo/root.confml']) |
129 self.assertEquals(self.store.list_resources("", recurse=True),['bar/confml/root.confml', 'foo/root.confml', 'foo/confml/test.confml']) |
83 foo_layer.delete_resource("confml/test.confml") |
130 foo_layer.delete_resource("confml/test.confml") |
84 self.assertEquals(foo_layer.list_resources("", True),["root.confml"]) |
131 self.assertEquals(foo_layer.list_resources("", recurse=True),["root.confml"]) |
85 self.assertEquals(store.list_resources("", True),["bar/confml/root.confml","foo/root.confml"]) |
132 self.assertEquals(self.store.list_resources("", recurse=True),["bar/confml/root.confml","foo/root.confml"]) |
86 |
133 |
87 def test_list_confml(self): |
134 def test_list_confml(self): |
88 store = self.storage_class.open("temp/layertest.pk","w") |
135 layer = api.Layer(self.store, "foo") |
89 layer = api.Layer(store, "foo") |
|
90 res = layer.open_resource("confml/test.confml","w") |
136 res = layer.open_resource("confml/test.confml","w") |
91 res.write("foo.conf") |
137 res.write("foo.conf") |
92 res.close() |
138 res.close() |
93 res = layer.open_resource("confml/foo.confml","w") |
139 res = layer.open_resource("confml/foo.confml","w") |
94 res.write("foo.conf") |
140 res.write("foo.conf") |
111 res.write("foo.conf") |
156 res.write("foo.conf") |
112 res.close() |
157 res.close() |
113 self.assertEquals(layer.list_implml(),['implml/stuff/test.confml']) |
158 self.assertEquals(layer.list_implml(),['implml/stuff/test.confml']) |
114 |
159 |
115 def test_list_content(self): |
160 def test_list_content(self): |
116 store = self.storage_class.open("temp/layertest.pk","w") |
161 layer = api.Layer(self.store, "foo") |
117 layer = api.Layer(store, "foo") |
|
118 res = layer.open_resource("content/bar/test.txt","w") |
162 res = layer.open_resource("content/bar/test.txt","w") |
119 res.write("foo.conf") |
163 res.write("foo.conf") |
120 res.close() |
164 res.close() |
121 res = layer.open_resource("content/foo.confml","w") |
165 res = layer.open_resource("content/foo.confml","w") |
122 res.write("foo.conf") |
166 res.write("foo.conf") |
123 res.close() |
167 res.close() |
124 res = layer.open_resource("root.confml","w") |
168 res = layer.open_resource("root.confml","w") |
125 res.write("foo.conf") |
169 res.write("foo.conf") |
126 res.close() |
170 res.close() |
127 self.assertEquals(layer.list_content(),['content/bar/test.txt', 'content/foo.confml']) |
171 self.assertEquals(layer.list_content(),[ 'content/foo.confml', 'content/bar/test.txt']) |
128 |
172 |
129 def test_list_doc(self): |
173 def test_list_doc(self): |
130 store = self.storage_class.open("temp/layertest.pk","w") |
174 layer = api.Layer(self.store, "foo") |
131 layer = api.Layer(store, "foo") |
|
132 res = layer.open_resource("doc/bar/test.txt","w") |
175 res = layer.open_resource("doc/bar/test.txt","w") |
133 res.write("foo.conf") |
176 res.write("foo.conf") |
134 res.close() |
177 res.close() |
135 res = layer.open_resource("doc/foo.confml","w") |
178 res = layer.open_resource("doc/foo.confml","w") |
136 res.write("foo.conf") |
179 res.write("foo.conf") |
137 res.close() |
180 res.close() |
138 res = layer.open_resource("root.confml","w") |
181 res = layer.open_resource("root.confml","w") |
139 res.write("foo.conf") |
182 res.write("foo.conf") |
140 res.close() |
183 res.close() |
141 self.assertEquals(layer.list_doc(),['doc/bar/test.txt', 'doc/foo.confml']) |
184 self.assertEquals(layer.list_doc(),['doc/foo.confml', 'doc/bar/test.txt' ]) |
142 |
185 |
143 def test_list_layer_resources(self): |
186 def test_list_layer_resources(self): |
144 store = self.storage_class.open("temp/layertest.pk","w") |
187 layer = api.Layer(self.store, "foo") |
145 layer = api.Layer(store, "foo") |
|
146 res = layer.open_resource("doc/bar/test.txt","w") |
188 res = layer.open_resource("doc/bar/test.txt","w") |
147 res.write("foo.conf") |
189 res.write("foo.conf") |
148 res.close() |
190 res.close() |
149 res = layer.open_resource("confml/foo.confml","w") |
191 res = layer.open_resource("confml/foo.confml","w") |
150 res.write("foo.conf") |
192 res.write("foo.conf") |
201 'confml/foo.confml', |
242 'confml/foo.confml', |
202 'bar/confml/hooo.confml']) |
243 'bar/confml/hooo.confml']) |
203 self.assertEquals(layer.list_content(),['content/data/abc.txt', 'bar/content/barcode.txt']) |
244 self.assertEquals(layer.list_content(),['content/data/abc.txt', 'bar/content/barcode.txt']) |
204 self.assertEquals(layer.list_doc(),['doc/bar/test.txt']) |
245 self.assertEquals(layer.list_doc(),['doc/bar/test.txt']) |
205 |
246 |
|
247 def test_list_all_related(self): |
|
248 layer = api.Layer(self.store, "foo") |
|
249 res = layer.open_resource("doc/bar/test.txt","w") |
|
250 res.write("foo.conf") |
|
251 res.close() |
|
252 res = layer.open_resource("confml/foo.confml","w") |
|
253 res.write("foo.conf") |
|
254 res.close() |
|
255 res = layer.open_resource("confml/bar.confml","w") |
|
256 res.write("foo.conf") |
|
257 res.close() |
|
258 res = layer.open_resource("content/data/abc.txt","w") |
|
259 res.write("foo.conf") |
|
260 res.close() |
|
261 res = layer.open_resource("foo.txt","w") |
|
262 res.write("foo.conf") |
|
263 res.close() |
|
264 |
|
265 self.assertEquals(layer.list_all_related(),['content/data/abc.txt', 'doc/bar/test.txt']) |
|
266 |
|
267 def test_list_all_related_with_filter(self): |
|
268 store = self.storage_class.open("temp/layertest.pk","w") |
|
269 layer = api.Layer(self.store, "foo") |
|
270 res = layer.open_resource("doc/bar/test.txt","w") |
|
271 res.write("foo.conf") |
|
272 res.close() |
|
273 res = layer.open_resource("confml/foo.confml","w") |
|
274 res.write("foo.conf") |
|
275 res.close() |
|
276 res = layer.open_resource("confml/bar.confml","w") |
|
277 res.write("foo.conf") |
|
278 res.close() |
|
279 res = layer.open_resource("content/data/abc.txt","w") |
|
280 res.write("foo.conf") |
|
281 res.close() |
|
282 res = layer.open_resource("foo.txt","w") |
|
283 res.write("foo.conf") |
|
284 res.close() |
|
285 |
|
286 self.assertEquals(layer.list_all_related(exclude_filters={'content':'.*\.txt'}), ['doc/bar/test.txt']) |
|
287 self.assertEquals(layer.list_all_related(exclude_filters={'doc':'.*\.txt'}), ['content/data/abc.txt']) |
|
288 |
|
289 |
|
290 |
|
291 |
206 class TestCompositeLayer(unittest.TestCase): |
292 class TestCompositeLayer(unittest.TestCase): |
207 storage_class = stringstorage.StringStorage |
293 storage_class = stringstorage.StringStorage |
|
294 def setUp(self): |
|
295 self.store = self.storage_class.open("temp/layertest.pk","w") |
208 |
296 |
209 def test_create_compositelayer(self): |
297 def test_create_compositelayer(self): |
210 store = self.storage_class.open("temp/layertestcomposite.pk","w") |
298 clayer = api.CompositeLayer(self.store) |
211 clayer = api.CompositeLayer() |
|
212 self.assertTrue(clayer) |
299 self.assertTrue(clayer) |
213 |
300 |
214 def test_create_with_layer(self): |
301 def test_create_with_layer(self): |
215 store = self.storage_class.open("temp/layertestcomposite.pk","w") |
302 clayer = api.CompositeLayer("sub",layers=[api.Layer(self.store,"test"), api.Layer(self.store,"foo/bar")]) |
216 clayer = api.CompositeLayer("sub",layers=[api.Layer(store,"test"), api.Layer(store,"foo/bar")]) |
|
217 self.assertEquals(clayer.list_layers(),['test', 'foo/bar']) |
303 self.assertEquals(clayer.list_layers(),['test', 'foo/bar']) |
218 |
304 |
219 def test_create_with_layer_and_add(self): |
305 def test_create_with_layer_and_add(self): |
220 store = self.storage_class.open("temp/layertestcomposite.pk","w") |
306 self.store = self.storage_class.open("temp/layertestcomposite.pk","w") |
221 clayer = api.CompositeLayer(layers=[api.Layer(store,"test"), api.Layer(store,"foo/bar")]) |
307 clayer = api.CompositeLayer(self.store, layers=[api.Layer(self.store,"test"), api.Layer(self.store,"foo/bar")]) |
222 self.assertEquals(clayer.list_layers(),['test', 'foo/bar']) |
308 self.assertEquals(clayer.list_layers(),['test', 'foo/bar']) |
223 clayer.add_layer(api.Layer(store,"res")) |
309 clayer.add_layer(api.Layer(self.store,"res")) |
224 self.assertEquals(clayer.list_layers(),['test', 'foo/bar', 'res']) |
310 self.assertEquals(clayer.list_layers(),['test', 'foo/bar', 'res']) |
225 |
311 |
226 def test_get_layer(self): |
312 def test_get_layer(self): |
227 store = self.storage_class.open("temp/layertestcomposite.pk","w") |
313 clayer = api.CompositeLayer(self.store, layers=[api.Layer(self.store,"test"), api.Layer(self.store,"foo/bar")]) |
228 clayer = api.CompositeLayer(layers=[api.Layer(store,"test"), api.Layer(store,"foo/bar")]) |
|
229 self.assertEquals(clayer.list_layers(),['test', 'foo/bar']) |
314 self.assertEquals(clayer.list_layers(),['test', 'foo/bar']) |
230 layer = clayer.get_layer('foo/bar') |
315 layer = clayer.get_layer('foo/bar') |
231 self.assertEquals(layer.get_current_path(),'foo/bar') |
316 self.assertEquals(layer.get_current_path(),'foo/bar') |
232 |
317 |
233 def test_create_layers_with_resources_and_list_with_composite(self): |
318 def test_create_layers_with_resources_and_list_with_composite(self): |
234 store = self.storage_class.open("temp/layertest.pk","w") |
319 foolayer = api.Layer(self.store, "foo") |
235 foolayer = api.Layer(store, "foo") |
|
236 res = foolayer.open_resource("doc/bar/test.txt","w") |
320 res = foolayer.open_resource("doc/bar/test.txt","w") |
237 res.write("foo.conf") |
321 res.write("foo.conf") |
238 res.close() |
322 res.close() |
239 res = foolayer.open_resource("implml/foo2.crml","w") |
323 res = foolayer.open_resource("implml/foo2.crml","w") |
240 res.write("foo.conf") |
324 res.write("foo.conf") |