0
|
1 |
#
|
|
2 |
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
|
3 |
# All rights reserved.
|
|
4 |
# This component and the accompanying materials are made available
|
|
5 |
# under the terms of "Eclipse Public License v1.0"
|
|
6 |
# which accompanies this distribution, and is available
|
|
7 |
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
|
8 |
#
|
|
9 |
# Initial Contributors:
|
|
10 |
# Nokia Corporation - initial contribution.
|
|
11 |
#
|
|
12 |
# Contributors:
|
|
13 |
#
|
|
14 |
# Description:
|
|
15 |
#
|
|
16 |
|
|
17 |
import unittest
|
|
18 |
import string
|
|
19 |
import sys
|
|
20 |
import __init__
|
|
21 |
|
|
22 |
from cone.public import api, exceptions
|
|
23 |
from cone.confml import model
|
|
24 |
|
|
25 |
|
|
26 |
class TestConfmlMeta(unittest.TestCase):
|
|
27 |
def test_create_meta(self):
|
|
28 |
metaelem = model.ConfmlMeta()
|
|
29 |
self.assertTrue(metaelem)
|
|
30 |
|
|
31 |
def test_create_with_data(self):
|
|
32 |
prop1 = model.ConfmlMetaProperty("foo", 123)
|
|
33 |
prop2 = model.ConfmlMetaProperty("bar", 312)
|
|
34 |
prop3 = model.ConfmlMetaProperty("test", 'testing string')
|
|
35 |
prop4 = model.ConfmlMetaProperty("testName", 'testing string2', \
|
|
36 |
"http://www.nokia.com/xml/cpf-id/1", \
|
|
37 |
attrs={"name":"name1", "value": "value1"})
|
|
38 |
metaelem = model.ConfmlMeta([prop1, prop2, prop3, prop4])
|
|
39 |
self.assertEquals(metaelem[0].tag, "foo")
|
|
40 |
self.assertEquals(metaelem[0].value, 123)
|
|
41 |
self.assertEquals(metaelem[1].tag, "bar")
|
|
42 |
self.assertEquals(metaelem[1].value, 312)
|
|
43 |
self.assertEquals(metaelem[2].tag, "test")
|
|
44 |
self.assertEquals(metaelem[2].value, "testing string")
|
|
45 |
self.assertEquals(metaelem[3].tag, "testName")
|
|
46 |
self.assertEquals(metaelem[3].value, "testing string2")
|
|
47 |
self.assertEquals(metaelem[3].ns, "http://www.nokia.com/xml/cpf-id/1")
|
|
48 |
|
|
49 |
def test_add_data(self):
|
|
50 |
metaelem = model.ConfmlMeta()
|
|
51 |
metaelem.append(model.ConfmlMetaProperty('test', 123, "abc", attrs = {"foo":"bar", "abc":1}))
|
|
52 |
self.assertEquals(metaelem[0].tag, 'test')
|
|
53 |
self.assertEquals(metaelem[0].value, 123)
|
|
54 |
self.assertEquals(metaelem[0].ns, "abc")
|
|
55 |
self.assertEquals(metaelem[0].attrs, {"foo":"bar", "abc":1})
|
|
56 |
|
|
57 |
def test_find_data(self):
|
|
58 |
metaelem = model.ConfmlMeta()
|
|
59 |
metaelem.append(model.ConfmlMetaProperty('test', 123, "abc",\
|
|
60 |
attrs = {"foo":"bar", "abc":1}))
|
|
61 |
metaelem.append(model.ConfmlMetaProperty('abc', "efg", None,\
|
|
62 |
attrs = {"foo2":"bar2", "abc2":2}))
|
|
63 |
self.assertEquals(metaelem.find_by_tag("test"), 0)
|
|
64 |
self.assertEquals(metaelem.get_property_by_tag("test").tag, 'test')
|
|
65 |
self.assertEquals(metaelem.get_property_by_tag("test").value, 123)
|
|
66 |
self.assertEquals(metaelem.get("test"), 123)
|
|
67 |
self.assertEquals(metaelem.get("test", 'ddd'), 123)
|
|
68 |
# test get_value with not found elem
|
|
69 |
self.assertEquals(metaelem.get("notthere"), None)
|
|
70 |
self.assertEquals(metaelem.get("notthere", 'fooman'), 'fooman')
|
|
71 |
self.assertEquals(metaelem.find_by_attribute("foo2", "bar2"), 1)
|
|
72 |
self.assertEquals(metaelem.find_by_attribute("qwerty", ""), -1)
|
|
73 |
|
|
74 |
def test_clone_meta(self):
|
|
75 |
prop1 = model.ConfmlMetaProperty("foo", 123)
|
|
76 |
prop2 = model.ConfmlMetaProperty("bar", 312)
|
|
77 |
prop3 = model.ConfmlMetaProperty("test", 'testing string')
|
|
78 |
metaelem1 = model.ConfmlMeta([prop1, prop2, prop3])
|
|
79 |
metaelem2 = metaelem1.clone()
|
|
80 |
self.assertEquals(metaelem1, metaelem2)
|
|
81 |
|
|
82 |
|
|
83 |
class TestConfmlDescription(unittest.TestCase):
|
|
84 |
def test_create_desc(self):
|
|
85 |
descelem1 = model.ConfmlDescription("testing")
|
|
86 |
descelem2 = model.ConfmlDescription()
|
|
87 |
descelem3 = model.ConfmlDescription()
|
|
88 |
descelem3.text = "changed"
|
|
89 |
self.assertEquals(descelem1.text, "testing")
|
|
90 |
self.assertEquals(descelem2.text, "")
|
|
91 |
self.assertEquals(descelem3.text, "changed")
|
|
92 |
|
|
93 |
def test_clone_desc(self):
|
|
94 |
descelem1 = model.ConfmlDescription("testing")
|
|
95 |
descelem2 = descelem1._clone()
|
|
96 |
self.assertEquals(descelem1.text, descelem2.text)
|
|
97 |
|
|
98 |
class TestConfmlGroup(unittest.TestCase):
|
|
99 |
def test_create_group(self):
|
|
100 |
group1 = model.ConfmlGroup("foo")
|
|
101 |
self.assertEquals(group1.ref, "foo")
|
|
102 |
self.assertEquals(group1.icon, None)
|
|
103 |
self.assertEquals(group1.desc, None)
|
|
104 |
|
|
105 |
def test_group_access_icon(self):
|
|
106 |
group1 = model.ConfmlGroup("foo", icon='first/icon.bmp')
|
|
107 |
self.assertEquals(group1.icon, "first/icon.bmp")
|
|
108 |
group1.icon = 'foo/bar.jpg'
|
|
109 |
self.assertEquals(group1.icon, "foo/bar.jpg")
|
|
110 |
del group1.icon
|
|
111 |
self.assertEquals(group1.icon, None)
|
|
112 |
|
|
113 |
def test_group_access_description(self):
|
|
114 |
group1 = model.ConfmlGroup("foo", desc='Testing description. for this something!')
|
|
115 |
self.assertEquals(group1.desc, "Testing description. for this something!")
|
|
116 |
group1.desc = 'Something else'
|
|
117 |
self.assertEquals(group1.desc, "Something else")
|
|
118 |
del group1.desc
|
|
119 |
self.assertEquals(group1.icon, None)
|
|
120 |
|
|
121 |
def test_clone_group(self):
|
|
122 |
group1 = model.ConfmlGroup("foo")
|
|
123 |
group2 = group1._clone()
|
|
124 |
self.assertEquals(group1.ref, group2.ref)
|
|
125 |
self.assertEquals(group1.desc, group2.desc)
|
|
126 |
self.assertEquals(group1.icon, group2.icon)
|
|
127 |
|
|
128 |
group1 = model.ConfmlGroup("foo", desc='testing desc', icon='link.bmp')
|
|
129 |
group2 = group1._clone(recursion=True)
|
|
130 |
self.assertEquals(group1.ref, group2.ref)
|
|
131 |
self.assertEquals(group1.desc, group2.desc)
|
|
132 |
self.assertEquals(group1.icon, group2.icon)
|
|
133 |
|
|
134 |
|
|
135 |
class TestConfmlSetting(unittest.TestCase):
|
|
136 |
def test_create_setting(self):
|
|
137 |
elem = model.ConfmlSetting('test')
|
|
138 |
self.assertTrue(elem)
|
|
139 |
self.assertEquals(elem.desc, None)
|
|
140 |
self.assertEquals(elem.readOnly, None)
|
|
141 |
self.assertEquals(elem.constraint, None)
|
|
142 |
self.assertEquals(elem.required, None)
|
|
143 |
self.assertEquals(elem.relevant, None)
|
|
144 |
|
|
145 |
def test_getters(self):
|
|
146 |
elem = model.ConfmlSetting('foo')
|
|
147 |
self.assertTrue(elem.get_ref(),'foo')
|
|
148 |
self.assertEquals(elem.get_type(),None)
|
|
149 |
self.assertTrue(elem.get_name(),'foo')
|
|
150 |
|
|
151 |
def test_set_type(self):
|
|
152 |
elem = model.ConfmlSetting('foo')
|
|
153 |
elem.type = 'string'
|
|
154 |
self.assertTrue(elem.ref,'foo')
|
|
155 |
self.assertTrue(elem.type,'string')
|
|
156 |
self.assertTrue(elem.name,'foo')
|
|
157 |
|
|
158 |
def test_setting_with_options(self):
|
|
159 |
elem = model.ConfmlSetting('foo',type='selection')
|
|
160 |
elem.create_option('foo','1')
|
|
161 |
elem.create_option('bar','bar')
|
|
162 |
elem.create_option('hou','sut')
|
|
163 |
self.assertTrue('1' in elem.get_valueset())
|
|
164 |
self.assertEquals(elem.options['1'].name, 'foo')
|
|
165 |
self.assertEquals(elem.options['1'].value, '1')
|
|
166 |
self.assertEquals(elem.options['bar'].name, 'bar')
|
|
167 |
|
|
168 |
def test_setting_create_with_nonetype(self):
|
|
169 |
elem = model.ConfmlSetting('foo',type=None)
|
|
170 |
self.assertEqual(elem.type,None)
|
|
171 |
|
|
172 |
def test_setting_with_properties(self):
|
|
173 |
elem = model.ConfmlSetting('foo')
|
|
174 |
elem.add_property(name='foo',value='bar/foo')
|
|
175 |
elem.add_property(name='bar',value='only/bar')
|
|
176 |
elem.add_property(name='testing',value='1', unit='mB')
|
|
177 |
self.assertEquals(elem.list_properties(), ['foo','bar','testing'])
|
|
178 |
self.assertEquals(elem.get_property('foo').value, 'bar/foo')
|
|
179 |
elem.remove_property('foo')
|
|
180 |
try:
|
|
181 |
elem.remove_property('bss')
|
|
182 |
self.fail('removing invalid succeeds')
|
|
183 |
except exceptions.NotFound:
|
|
184 |
pass
|
|
185 |
self.assertEquals(elem.list_properties(), ['bar','testing'])
|
|
186 |
for property_name in elem.list_properties():
|
|
187 |
elem.remove_property(property_name)
|
|
188 |
self.assertEquals(elem.list_properties(), [])
|
|
189 |
|
|
190 |
|
|
191 |
def test_setting_with_properties_property(self):
|
|
192 |
elem = model.ConfmlSetting('foo')
|
|
193 |
elem.add_property(name='foo',value='bar/foo')
|
|
194 |
elem.add_property(name='bar',value='only/bar')
|
|
195 |
elem.add_property(name='testing',value='1', unit='mB')
|
|
196 |
self.assertEquals(elem.properties['foo'].value,'bar/foo')
|
|
197 |
self.assertEquals(elem.properties['bar'].value,'only/bar')
|
|
198 |
|
|
199 |
def test_setting_with_readOnly_value(self):
|
|
200 |
elem = model.ConfmlSetting('foo', readOnly=True)
|
|
201 |
self.assertEquals(elem.readOnly,True)
|
|
202 |
elem.readOnly = False
|
|
203 |
self.assertEquals(elem.readOnly,False)
|
|
204 |
|
|
205 |
def test_setting_with_constaint(self):
|
|
206 |
elem = model.ConfmlSetting('foo', constraint=". > '1'")
|
|
207 |
self.assertEquals(elem.constraint,". > '1'")
|
|
208 |
elem.constraint = 'foobar'
|
|
209 |
self.assertEquals(elem.constraint,"foobar")
|
|
210 |
|
|
211 |
def test_setting_with_required_value(self):
|
|
212 |
elem = model.ConfmlSetting('foo', required=False)
|
|
213 |
self.assertEquals(elem.required,False)
|
|
214 |
elem = model.ConfmlSetting('foo', required=True)
|
|
215 |
self.assertEquals(elem.required,True)
|
|
216 |
elem.required = False
|
|
217 |
self.assertEquals(elem.required,False)
|
|
218 |
|
|
219 |
def test_setting_with_relevant_value(self):
|
|
220 |
elem = model.ConfmlSetting('foo', relevant='ffoo oss')
|
|
221 |
self.assertEquals(elem.relevant,'ffoo oss')
|
|
222 |
elem.relevant = ''
|
|
223 |
self.assertEquals(elem.relevant,'')
|
|
224 |
|
|
225 |
def test_setting_with_max_length(self):
|
|
226 |
elem = model.ConfmlSetting('foo', maxLength=10)
|
|
227 |
self.assertEquals(elem.maxLength,10)
|
|
228 |
elem.maxLength = 20
|
|
229 |
self.assertEquals(elem.maxLength,20)
|
|
230 |
self.assertTrue(elem._has(model.ConfmlMaxLength.refname))
|
|
231 |
|
|
232 |
def test_setting_with_min_length(self):
|
|
233 |
elem = model.ConfmlSetting('foo', minLength=10)
|
|
234 |
self.assertEquals(elem.minLength,10)
|
|
235 |
elem.minLength = 20
|
|
236 |
self.assertEquals(elem.minLength,20)
|
|
237 |
self.assertTrue(elem._has(model.ConfmlMinLength.refname))
|
|
238 |
|
|
239 |
def test_setting_rfs_casting(self):
|
|
240 |
elem = model.ConfmlSetting('foo', minLength=10)
|
|
241 |
self.assertEquals(elem.get_rfs_cast('true'),True)
|
|
242 |
self.assertEquals(elem.get_rfs_cast('false'),False)
|
|
243 |
self.assertEquals(elem.set_rfs_cast(True),'true')
|
|
244 |
self.assertEquals(elem.set_rfs_cast(False),'false')
|
|
245 |
self.assertEquals(elem.set_rfs_cast(1),'true')
|
|
246 |
|
|
247 |
class TestConfmlSelectionSetting(unittest.TestCase):
|
|
248 |
def test_create_selection_setting(self):
|
|
249 |
elem = model.ConfmlSelectionSetting('foo')
|
|
250 |
self.assertTrue(elem)
|
|
251 |
self.assertEquals(elem.type, 'selection')
|
|
252 |
self.assertEquals(elem.desc, None)
|
|
253 |
self.assertEquals(elem.readOnly, None)
|
|
254 |
self.assertEquals(elem.constraint, None)
|
|
255 |
self.assertEquals(elem.required, None)
|
|
256 |
self.assertEquals(elem.relevant, None)
|
|
257 |
|
|
258 |
def test_selection_valueset(self):
|
|
259 |
elem = model.ConfmlSelectionSetting('foo')
|
|
260 |
self.assertEquals(elem.type, 'selection')
|
|
261 |
elem.create_option('foo', '1')
|
|
262 |
elem.create_option('bar', '2')
|
|
263 |
elem.create_option('baz', '3')
|
|
264 |
self.assertEquals(elem.get_valueset(), api.ValueSet(['1', '2', '3']))
|
|
265 |
|
|
266 |
class TestConfmlMultiSelectionSetting(unittest.TestCase):
|
|
267 |
def test_create_multiselection_setting(self):
|
|
268 |
elem = model.ConfmlMultiSelectionSetting('mset1')
|
|
269 |
self.assertTrue(elem)
|
|
270 |
self.assertEquals(elem.type, 'multiSelection')
|
|
271 |
self.assertEquals(elem.desc, None)
|
|
272 |
self.assertEquals(elem.readOnly, None)
|
|
273 |
self.assertEquals(elem.constraint, None)
|
|
274 |
self.assertEquals(elem.required, None)
|
|
275 |
self.assertEquals(elem.relevant, None)
|
|
276 |
|
|
277 |
def test_multiselection_valueset(self):
|
|
278 |
elem = model.ConfmlMultiSelectionSetting('foo')
|
|
279 |
self.assertEquals(elem.type, 'multiSelection')
|
|
280 |
elem.create_option('foo', '1')
|
|
281 |
elem.create_option('bar', '2')
|
|
282 |
elem.create_option('baz', '3')
|
|
283 |
self.assertEquals(elem.get_valueset(), api.ValueSet(['1', '2', '3']))
|
|
284 |
|
|
285 |
def test_setting_value_to_multiselection(self):
|
|
286 |
conf = model.ConfmlConfiguration('test.confml')
|
|
287 |
elem = model.ConfmlMultiSelectionSetting('mset2', type='multiSelection')
|
|
288 |
conf.add_feature(elem)
|
|
289 |
elem.value = "\"sel1\" \"sel2\""
|
|
290 |
self.assertEquals(elem.type, 'multiSelection')
|
|
291 |
self.assertEquals(elem.get_data_cast("\"sel1\" \"sel2\""), ["sel1", "sel2"])
|
|
292 |
self.assertEquals(elem.get_value(), ["sel1", "sel2"])
|
|
293 |
|
|
294 |
def test_set_data_cast(self):
|
|
295 |
elem = model.ConfmlMultiSelectionSetting('mset3', type='multiSelection')
|
|
296 |
self.assertEquals(elem.set_data_cast('"sel1" "sel2 with some spaces"'), '"sel1" "sel2 with some spaces"')
|
|
297 |
self.assertEquals(elem.set_data_cast(["sel1", "sel2 with some spaces"]), '"sel1" "sel2 with some spaces"')
|
|
298 |
self.assertEquals(elem.set_data_cast(["1", "1"]), '"1" "1"')
|
|
299 |
self.assertEquals(elem.set_data_cast([1, 2, 3]), '"1" "2" "3"')
|
|
300 |
|
|
301 |
|
|
302 |
def test_get_data_cast(self):
|
|
303 |
elem = model.ConfmlMultiSelectionSetting('mset3', type='multiSelection')
|
|
304 |
self.assertEquals(elem.get_data_cast('"sel1" "sel2 with some spaces"'), ["sel1", "sel2 with some spaces"])
|
|
305 |
self.assertEquals(elem.get_data_cast('"sel1" "sel2 space" "foo bar"'), ["sel1", "sel2 space", "foo bar"])
|
|
306 |
|
|
307 |
def test_setting_value_to_multiselection2(self):
|
|
308 |
conf = model.ConfmlConfiguration('test.confml')
|
|
309 |
elem = model.ConfmlMultiSelectionSetting('mset3', type='multiSelection')
|
|
310 |
conf.add_feature(elem)
|
|
311 |
elem.value = '"sel1" "sel2 with some spaces"'
|
|
312 |
self.assertEquals(elem.type, 'multiSelection')
|
|
313 |
self.assertEquals(elem.get_value(), ["sel1", "sel2 with some spaces"])
|
|
314 |
elem.value = ["sel1", "sel2 with some spaces"]
|
|
315 |
self.assertEquals(elem.get_value(), ["sel1", "sel2 with some spaces"])
|
|
316 |
|
|
317 |
def test_setting_not_list_value_to_multiselection(self):
|
|
318 |
conf = model.ConfmlConfiguration('test.confml')
|
|
319 |
elem = model.ConfmlMultiSelectionSetting('mset4', type='multiSelection')
|
|
320 |
conf.add_feature(elem)
|
|
321 |
self.assertRaises(ValueError, elem.set_value, "not list")
|
|
322 |
|
|
323 |
def test_setting_list_value_to_multiselection(self):
|
|
324 |
conf = model.ConfmlConfiguration('test.confml')
|
|
325 |
elem = model.ConfmlMultiSelectionSetting('mset5', type='multiSelection')
|
|
326 |
conf.add_feature(elem)
|
|
327 |
elem.set_value(["li1", "li2"])
|
|
328 |
self.assertEquals(elem.get_value(), ["li1", "li2"])
|
|
329 |
self.assertEquals(elem.get_data().get_value(), '"li1" "li2"')
|
|
330 |
|
|
331 |
class TestConfmlIntSetting(unittest.TestCase):
|
|
332 |
def test_create_setting(self):
|
|
333 |
elem = model.ConfmlIntSetting('test')
|
|
334 |
self.assertTrue(elem)
|
|
335 |
self.assertEquals(elem.type, 'int')
|
|
336 |
self.assertEquals(elem.desc, None)
|
|
337 |
self.assertEquals(elem.readOnly, None)
|
|
338 |
self.assertEquals(elem.constraint, None)
|
|
339 |
self.assertEquals(elem.required, None)
|
|
340 |
self.assertEquals(elem.relevant, None)
|
|
341 |
|
|
342 |
def test_setting_value_to_int(self):
|
|
343 |
conf = model.ConfmlConfiguration('test.confml')
|
|
344 |
elem = model.ConfmlIntSetting('foo', type='int')
|
|
345 |
conf.add_feature(elem)
|
|
346 |
elem.value = 1
|
|
347 |
self.assertEquals(elem.value,1)
|
|
348 |
self.assertEquals(elem.get_original_value(),'1')
|
|
349 |
self.assertEquals(elem.get_data().get_value(),'1')
|
|
350 |
|
|
351 |
def test_setting_value_with_incompatible_values(self):
|
|
352 |
conf = model.ConfmlConfiguration('test.confml')
|
|
353 |
elem = model.ConfmlIntSetting('foo')
|
|
354 |
conf.add_feature(elem)
|
|
355 |
try:
|
|
356 |
elem.value = 'hh'
|
|
357 |
self.fail('setting string to int succeeds')
|
|
358 |
except ValueError:
|
|
359 |
pass
|
|
360 |
elem.value = '1234'
|
|
361 |
self.assertEquals(elem.value, 1234)
|
|
362 |
elem.value = 0xA
|
|
363 |
self.assertEquals(elem.value, 10)
|
|
364 |
del elem.value
|
|
365 |
self.assertEquals(elem.value, None)
|
|
366 |
|
|
367 |
def test_setting_value_to_int(self):
|
|
368 |
conf = model.ConfmlConfiguration('test.confml')
|
|
369 |
elem1 = model.ConfmlIntSetting('foo')
|
|
370 |
elem2 = model.ConfmlIntSetting('bar')
|
|
371 |
conf.add_feature(elem1)
|
|
372 |
conf.add_feature(elem2)
|
|
373 |
elem1.value = 1
|
|
374 |
elem2.value = 2
|
|
375 |
test = elem1.value + elem2.value
|
|
376 |
self.assertEquals(test,3)
|
|
377 |
elem1.value = elem1.value + elem2.value + 5
|
|
378 |
self.assertEquals(elem1.value,8)
|
|
379 |
|
|
380 |
class TestConfmlBooleanSetting(unittest.TestCase):
|
|
381 |
def test_create_setting(self):
|
|
382 |
elem = model.ConfmlBooleanSetting('test')
|
|
383 |
self.assertTrue(elem)
|
|
384 |
self.assertEquals(elem.type, 'boolean')
|
|
385 |
self.assertEquals(elem.desc, None)
|
|
386 |
self.assertEquals(elem.readOnly, None)
|
|
387 |
self.assertEquals(elem.constraint, None)
|
|
388 |
self.assertEquals(elem.required, None)
|
|
389 |
self.assertEquals(elem.relevant, None)
|
|
390 |
|
|
391 |
def test_setting_value_to_int(self):
|
|
392 |
conf = model.ConfmlConfiguration('test.confml')
|
|
393 |
elem = model.ConfmlBooleanSetting('foo', type='int')
|
|
394 |
self.assertEquals(elem.type, 'boolean')
|
|
395 |
conf.add_feature(elem)
|
|
396 |
elem.value = 1
|
|
397 |
# Set elem rfs value
|
|
398 |
elem.set_value(True, 'rfs')
|
|
399 |
self.assertEquals(elem.get_value('rfs'),True)
|
|
400 |
self.assertEquals(elem.get_original_value('rfs'),'true')
|
|
401 |
self.assertEquals(elem.value,1)
|
|
402 |
self.assertEquals(elem.get_original_value(),'true')
|
|
403 |
self.assertEquals(elem.get_data().get_value(),'true')
|
|
404 |
|
|
405 |
def test_setting_value_with_incompatible_values(self):
|
|
406 |
conf = model.ConfmlConfiguration('test.confml')
|
|
407 |
elem = model.ConfmlBooleanSetting('foo')
|
|
408 |
conf.add_feature(elem)
|
|
409 |
elem.value = '1234'
|
|
410 |
self.assertEquals(elem.value, True)
|
|
411 |
elem.value = 0xA
|
|
412 |
self.assertEquals(elem.value, True)
|
|
413 |
elem.value = False
|
|
414 |
self.assertEquals(elem.value, False)
|
|
415 |
elem.value = ''
|
|
416 |
self.assertEquals(elem.value, False)
|
|
417 |
del elem.value
|
|
418 |
self.assertEquals(elem.value, None)
|
|
419 |
|
|
420 |
def test_setting_value_with_supported_values(self):
|
|
421 |
conf = model.ConfmlConfiguration('test.confml')
|
|
422 |
elem = model.ConfmlBooleanSetting('foo')
|
|
423 |
conf.add_feature(elem)
|
|
424 |
elem.value = '1'
|
|
425 |
self.assertEquals(elem.value, True)
|
|
426 |
elem.value = 'true'
|
|
427 |
self.assertEquals(elem.value, True)
|
|
428 |
elem.value = True
|
|
429 |
self.assertEquals(elem.value, True)
|
|
430 |
elem.value = '0'
|
|
431 |
self.assertEquals(elem.value, False)
|
|
432 |
elem.value = 'false'
|
|
433 |
self.assertEquals(elem.value, False)
|
|
434 |
elem.value = False
|
|
435 |
self.assertEquals(elem.value, False)
|
|
436 |
del elem.value
|
|
437 |
self.assertEquals(elem.value, None)
|
|
438 |
|
|
439 |
class TestConfmlSequenceSetting(unittest.TestCase):
|
|
440 |
def test_create_setting(self):
|
|
441 |
elem = model.ConfmlSequenceSetting('test')
|
|
442 |
self.assertTrue(elem)
|
|
443 |
self.assertEquals(elem.desc, None)
|
|
444 |
|
|
445 |
def test_setting_with_properties_property(self):
|
|
446 |
elem = model.ConfmlSequenceSetting('foo')
|
|
447 |
elem.add_property(name='foo',value='bar/foo')
|
|
448 |
elem.add_property(name='bar',value='only/bar')
|
|
449 |
elem.add_property(name='testing',value='1', unit='mB')
|
|
450 |
self.assertEquals(elem.properties['foo'].value,'bar/foo')
|
|
451 |
self.assertEquals(elem.properties['bar'].value,'only/bar')
|
|
452 |
|
|
453 |
def test_setting_with_min_occurs(self):
|
|
454 |
elem = model.ConfmlSequenceSetting('foo', minOccurs=1)
|
|
455 |
self.assertEquals(elem.minOccurs,1)
|
|
456 |
elem.minOccurs = 2
|
|
457 |
self.assertEquals(elem.minOccurs,2)
|
|
458 |
|
|
459 |
def test_setting_with_max_occurs(self):
|
|
460 |
elem = model.ConfmlSequenceSetting('foo', maxOccurs=10)
|
|
461 |
self.assertEquals(elem.maxOccurs,10)
|
|
462 |
elem.maxOccurs = 20
|
|
463 |
self.assertEquals(elem.maxOccurs,20)
|
|
464 |
|
|
465 |
def test_create_feature_seq_with_int_bool_settings_access_feature_value_with_property(self):
|
|
466 |
config = api.Configuration('foo.confml')
|
|
467 |
fea= model.ConfmlSequenceSetting("foo")
|
|
468 |
fea.add_feature(model.ConfmlIntSetting('child1'))
|
|
469 |
fea.add_feature(model.ConfmlBooleanSetting('child2'))
|
|
470 |
fea.add_feature(model.ConfmlSetting('child3'))
|
|
471 |
config.add_feature(fea)
|
|
472 |
dview = config.get_default_view()
|
|
473 |
foofea = dview.get_feature('foo')
|
|
474 |
# Test adding a data row with array
|
|
475 |
foofea.set_value([['1','2','3'],
|
|
476 |
['4','5','6'],
|
|
477 |
['7','8','9']
|
|
478 |
])
|
|
479 |
self.assertEquals(foofea.value, [['1','2','3'],
|
|
480 |
['4','5','6'],
|
|
481 |
['7','8','9']
|
|
482 |
])
|
|
483 |
|
|
484 |
foofea.value = [['1','2','3'],
|
|
485 |
['7','8','9']
|
|
486 |
]
|
|
487 |
|
|
488 |
self.assertEquals(foofea.data[0].value,['1','2','3'])
|
|
489 |
self.assertEquals(foofea.data[1].value,['7','8','9'])
|
|
490 |
self.assertEquals(foofea.data[1][1].value,'8')
|
|
491 |
self.assertEquals(foofea.get_value(), [['1','2','3'],
|
|
492 |
['7','8','9']
|
|
493 |
])
|
|
494 |
self.assertEquals(foofea.child1.value,['1','7'])
|
|
495 |
|
|
496 |
class TestConfmlFile(unittest.TestCase):
|
|
497 |
def test_create_localpath_elem(self):
|
|
498 |
elem = model.ConfmlLocalPath()
|
|
499 |
self.assertTrue(elem)
|
|
500 |
self.assertEquals(elem.get_ref(),'localPath')
|
|
501 |
|
|
502 |
def test_create_targetpath_elem(self):
|
|
503 |
elem = model.ConfmlTargetPath()
|
|
504 |
self.assertTrue(elem)
|
|
505 |
self.assertEquals(elem.get_ref(),'targetPath')
|
|
506 |
|
|
507 |
def test_create_file_elem(self):
|
|
508 |
elem = model.ConfmlFileSetting('test')
|
|
509 |
self.assertTrue(elem)
|
|
510 |
self.assertEquals(elem.get_ref(),'test')
|
|
511 |
self.assertEquals(elem.list_features(), ['localPath','targetPath'])
|
|
512 |
self.assertEquals(elem.get_feature('localPath').fqr, 'test.localPath')
|
|
513 |
self.assertEquals(elem.get_feature('targetPath').fqr, 'test.targetPath')
|
|
514 |
|
|
515 |
def test_create_file_elem_and_set_value(self):
|
|
516 |
config = api.Configuration('test.confml')
|
|
517 |
elem = model.ConfmlFileSetting('test', localpath='test.txt')
|
|
518 |
config.add_feature(elem)
|
|
519 |
dview = config.get_default_view()
|
|
520 |
self.assertEquals(dview.list_all_features(),['test','test.localPath','test.targetPath'])
|
|
521 |
dview.get_feature('test.localPath').set_value('foo/test.txt')
|
|
522 |
dview.get_feature('test.targetPath').set_value('Z:\\test\test.txt')
|
|
523 |
dview.get_feature('test.localPath').set_value('now/test.txt')
|
|
524 |
self.assertEquals(dview.get_feature('test.localPath').get_value(),'now/test.txt')
|
|
525 |
self.assertEquals(len(dview.get_feature('test.localPath').get_datas()),1)
|
|
526 |
|
|
527 |
def test_clone_file_elem(self):
|
|
528 |
elem1 = model.ConfmlFileSetting('test')
|
|
529 |
elem2 = elem1._clone(recursion=True)
|
|
530 |
|
|
531 |
|
|
532 |
class TestConfmlIcon(unittest.TestCase):
|
|
533 |
def test_create_icon(self):
|
|
534 |
icon = model.ConfmlIcon("test/foo/bar.jpg")
|
|
535 |
self.assertEquals(icon.href, "test/foo/bar.jpg")
|
|
536 |
icon.href = 'new/icon.jpg'
|
|
537 |
self.assertEquals(icon.href, "new/icon.jpg")
|
|
538 |
|
|
539 |
def test_clone_icon(self):
|
|
540 |
icon1 = model.ConfmlIcon("test/foo/bar.jpg")
|
|
541 |
icon2 = icon1._clone()
|
|
542 |
self.assertEquals(icon1.href, icon2.href)
|
|
543 |
|
|
544 |
|
|
545 |
class TestLengths(unittest.TestCase):
|
|
546 |
def test_create_maxLength(self):
|
|
547 |
max = model.ConfmlMaxLength('100')
|
|
548 |
self.assertEquals(max.value, '100')
|
|
549 |
|
|
550 |
def test_create_minLength(self):
|
|
551 |
min = model.ConfmlMinLength('100')
|
|
552 |
self.assertEquals(min.value, '100')
|
|
553 |
|
|
554 |
class TestConfmlFacets(unittest.TestCase):
|
|
555 |
def test_create_inclusive(self):
|
|
556 |
min = model.ConfmlMinInclusive('-10')
|
|
557 |
max = model.ConfmlMaxInclusive('10')
|
|
558 |
self.assertEquals(min.value, '-10')
|
|
559 |
self.assertEquals(max.value, '10')
|
|
560 |
|
|
561 |
def test_create_exclusive(self):
|
|
562 |
min = model.ConfmlMinExclusive('0')
|
|
563 |
max = model.ConfmlMaxExclusive("9")
|
|
564 |
self.assertEquals(min.value, '0')
|
|
565 |
self.assertEquals(max.value, '9')
|
|
566 |
|
|
567 |
def test_create_pattern(self):
|
|
568 |
pattern = model.ConfmlPattern("[a-zA-Z]")
|
|
569 |
self.assertEquals(pattern.value, "[a-zA-Z]")
|
|
570 |
|
|
571 |
def test_create_totalDigits(self):
|
|
572 |
digits = model.ConfmlTotalDigits("3")
|
|
573 |
self.assertEquals(digits.value, '3')
|
|
574 |
|
|
575 |
class TestConfmlConfiguration(unittest.TestCase):
|
|
576 |
def test_create_configuration(self):
|
|
577 |
config = model.ConfmlConfiguration("test/foo/bar.jpg")
|
|
578 |
self.assertEquals(config.meta, None)
|
|
579 |
self.assertEquals(config.desc, None)
|
|
580 |
self.assertEquals(config.name, 'test__foo__bar_jpg')
|
|
581 |
self.assertEquals(config.ref, 'test__foo__bar_jpg')
|
|
582 |
self.assertEquals(config.path, 'test/foo/bar.jpg')
|
|
583 |
|
|
584 |
# def test_configuration_access_meta(self):
|
|
585 |
# config = model.ConfmlConfiguration("test/foo/bar.jpg", meta={'test':'foo','bar':' hd dd'})
|
|
586 |
# self.assertEquals(config.meta.dict, {'test':'foo','bar':' hd dd'})
|
|
587 |
# self.assertEquals(config.meta['test'],'foo')
|
|
588 |
# config.meta = {'test':'123'}
|
|
589 |
# self.assertEquals(config.meta['test'],'123')
|
|
590 |
# del config.meta
|
|
591 |
# self.assertEquals(config.meta, None)
|
|
592 |
|
|
593 |
def test_configuration_access_desc(self):
|
|
594 |
config = model.ConfmlConfiguration("test/foo/bar.jpg", desc="testing description")
|
|
595 |
self.assertEquals(config.desc, "testing description")
|
|
596 |
config.desc = 'new desc'
|
|
597 |
self.assertEquals(config.desc, "new desc")
|
|
598 |
del config.desc
|
|
599 |
self.assertEquals(config.desc, None)
|
|
600 |
|
|
601 |
class TestConfmlProperty(unittest.TestCase):
|
|
602 |
def test_create_property(self):
|
|
603 |
property = model.ConfmlProperty(name='test',value='foo', unit='kB')
|
|
604 |
self.assertEquals(property.name, 'test')
|
|
605 |
self.assertEquals(property.value, 'foo')
|
|
606 |
self.assertEquals(property.unit, 'kB')
|
|
607 |
property.name = 'testnew'
|
|
608 |
property.value = 'foo faa'
|
|
609 |
self.assertEquals(property.name, 'testnew')
|
|
610 |
self.assertEquals(property.value, 'foo faa')
|
|
611 |
|