|
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 """ |
|
18 Test the configuration |
|
19 """ |
|
20 import unittest |
|
21 import string |
|
22 import sys,os |
|
23 import __init__ |
|
24 |
|
25 from cone.public import api,exceptions,utils |
|
26 |
|
27 class TestViews(unittest.TestCase): |
|
28 def setUp(self): |
|
29 pass |
|
30 |
|
31 def test_create_view(self): |
|
32 view = api.View("view1") |
|
33 self.assertTrue(view) |
|
34 self.assertTrue(view.ref, "view1") |
|
35 |
|
36 def test_view_add(self): |
|
37 view = api.View("view1") |
|
38 view._add(api.Group("Test")) |
|
39 self.assertEquals(view._list(),['Test']) |
|
40 |
|
41 # def test_view_add_child_incorrect_class(self): |
|
42 # view = api.View("view1") |
|
43 # try: |
|
44 # view._add(api.Feature("Test")) |
|
45 # self.fail("Adding incorrect class succeeds!") |
|
46 # except exceptions.IncorrectClassError,e: |
|
47 # pass |
|
48 |
|
49 # def test_group_add_child_incorrect_class(self): |
|
50 # group = api.Group("Group") |
|
51 # try: |
|
52 # group._add(api.Feature("Test")) |
|
53 # self.fail("Adding incorrect class succeeds!") |
|
54 # except exceptions.IncorrectClassError,e: |
|
55 # pass |
|
56 |
|
57 # def test_feature_add_child_incorrect_class(self): |
|
58 # feature = api.Feature("Feature") |
|
59 # try: |
|
60 # feature._add(api.Group("Test")) |
|
61 # self.fail("Adding incorrect class succeeds! This succeeds because of Base class support in model.") |
|
62 # except exceptions.IncorrectClassError,e: |
|
63 # pass |
|
64 |
|
65 def test_feature_add(self): |
|
66 feature = api.Feature("Feature") |
|
67 feature._add(api.Feature("Test")) |
|
68 self.assertEquals(feature._list(),['Test']) |
|
69 |
|
70 def test_view_add_groups_and_features_and_list_all(self): |
|
71 view = api.View("view1") |
|
72 view._add(api.Group("group1")) |
|
73 view._add(api.Group("group2")) |
|
74 view._add(api._FeatureProxy("feature1")) |
|
75 view.group1._add(api.Group("group21")) |
|
76 view.group1.group21._add(api._FeatureProxy("feature211")) |
|
77 view.group1.group21._add(api._FeatureProxy("feature212")) |
|
78 view.feature1._add(api._FeatureProxy("feature11")) |
|
79 self.assertEquals(sorted(view._list_traverse()), |
|
80 sorted(['group1', |
|
81 'group2', |
|
82 'feature1', |
|
83 'group1.group21', |
|
84 'group1.group21.feature211', |
|
85 'group1.group21.feature212', |
|
86 'feature1.feature11'])) |
|
87 |
|
88 def test_view_add_groups_and_features_and_list_features(self): |
|
89 view = api.View("view1") |
|
90 view._add(api.Group("group1")) |
|
91 view._add(api.Group("group2")) |
|
92 view._add(api._FeatureProxy("feature1")) |
|
93 view.group1._add(api.Group("group21")) |
|
94 view.group1.group21._add(api._FeatureProxy("feature211")) |
|
95 view.group1.group21._add(api._FeatureProxy("feature212")) |
|
96 view.feature1._add(api._FeatureProxy("feature11")) |
|
97 self.assertEquals(sorted(view.list_all_features()), |
|
98 sorted(['feature1', |
|
99 'group1.group21.feature211', |
|
100 'group1.group21.feature212', |
|
101 'feature1.feature11'])) |
|
102 |
|
103 |
|
104 def test_view_add_features_with_view_add_feature(self): |
|
105 view = api.View("view1") |
|
106 view.add_feature(api.Feature("feature1")) |
|
107 view.add_feature(api.Feature("feature2"), "com.nokia.s60") |
|
108 view.com.nokia.s60.feature2.add_feature(api.Feature("feature21")) |
|
109 self.assertEquals(sorted(view.list_all_features()), |
|
110 sorted(['feature1', |
|
111 'com.nokia.s60.feature2', |
|
112 'com.nokia.s60.feature2.feature21', |
|
113 ])) |
|
114 |
|
115 |
|
116 def test_view_add_features_and_get_features(self): |
|
117 view = api.View("view1") |
|
118 view.add_feature(api.Feature("feature1")) |
|
119 view.add_feature(api.Feature("feature2"), "com.nokia.s60") |
|
120 view.com.nokia.s60.feature2.add_feature(api.Feature("feature21")) |
|
121 self.assertEquals(view.get_feature("com.nokia.s60.feature2"), view.com.nokia.s60.feature2) |
|
122 |
|
123 def test_view_get_features(self): |
|
124 view = api.View("view1") |
|
125 view.add_feature(api.Feature("feature1",type='boolean')) |
|
126 view.add_feature(api.Feature("feature2")) |
|
127 view.add_feature(api.Feature("feature11", type='boolean'),"feature1") |
|
128 view.add_feature(api.Feature("feature12"),"feature1") |
|
129 self.assertEquals(view.get_features("feature2"), [view.feature2]) |
|
130 self.assertEquals(view.get_features("feature2.*"), []) |
|
131 self.assertEquals(view.get_features("feature1.*"), [view.feature1.feature11, view.feature1.feature12]) |
|
132 self.assertEquals(view.get_features("feature1.*", name='feature11'), [view.feature1.feature11]) |
|
133 self.assertEquals(view.get_features("**", filters=[lambda x: x.get_type()=='boolean']), |
|
134 [view.feature1, |
|
135 view.feature1.feature11]) |
|
136 |
|
137 def test_view_add_features_and_remove_features(self): |
|
138 view = api.View("view1") |
|
139 view.add_feature(api.Feature("feature1")) |
|
140 view.add_feature(api.Feature("feature2"), "com.nokia.s60") |
|
141 view.com.nokia.s60.feature2.add_feature(api.Feature("feature21")) |
|
142 |
|
143 self.assertEquals(view.list_all_features(),['feature1', 'com.nokia.s60.feature2', 'com.nokia.s60.feature2.feature21']) |
|
144 self.assertEquals(view.get_group("com.nokia.s60").list_features(),['feature2']) |
|
145 for fearef in view.list_features(): |
|
146 view.remove_feature(fearef) |
|
147 self.assertEquals(view.list_all_features(),['com.nokia.s60.feature2', 'com.nokia.s60.feature2.feature21']) |
|
148 |
|
149 def test_view_add_groups_remove_groups(self): |
|
150 view = api.View("view1") |
|
151 view.add_group("Group one") |
|
152 view.add_group("Group two") |
|
153 view.add_feature(api.Feature("feature2"),"Group one") |
|
154 self.assertEquals(view.list_groups(),['Group one', 'Group two']) |
|
155 view.remove_group("Group two") |
|
156 self.assertEquals(view.list_groups(),['Group one']) |
|
157 view.get_group('Group one').add_feature(api.Feature("testing")) |
|
158 self.assertEquals(view.get_group('Group one').list_features(),['feature2','testing']) |
|
159 self.assertEquals(view.list_all_features(),['Group one.feature2', 'Group one.testing']) |
|
160 view.remove_group("Group one") |
|
161 self.assertEquals(view.list_groups(),[]) |
|
162 self.assertEquals(view.list_features(),[]) |
|
163 |
|
164 def test_view_add_featurelink(self): |
|
165 view = api.View("view1") |
|
166 view.add_group("Group one") |
|
167 view.add_group("Group two") |
|
168 view.add_feature(api.Feature("feature2"),"Group one") |
|
169 self.assertEquals(view.list_groups(),['Group one', 'Group two']) |
|
170 view.remove_group("Group two") |
|
171 #view.add(api.FeatureGroup('foo.*')) |
|
172 self.assertEquals(view.list_groups(),['Group one']) |
|
173 view.get_group('Group one').add(api.FeatureLink("testing")) |
|
174 g1 = view.get_group('Group one') |
|
175 self.assertEquals(g1.list_features(),['feature2']) |
|
176 self.assertEquals(view.list_all_features(),['Group one.feature2']) |
|
177 view.remove_group("Group one") |
|
178 |
|
179 self.assertEquals(view.list_groups(),[]) |
|
180 self.assertEquals(view.list_features(),[]) |
|
181 |
|
182 def compareview(self,view1,view2): |
|
183 self.assertEquals(view1.ref, view2.ref) |
|
184 self.assertEquals(view1.container, view2.container) |
|
185 self.assertEquals(view1.name, view2.name) |
|
186 self.assertEquals(view1.support_data, view2.support_data) |
|
187 |
|
188 |
|
189 def test_clone_view_with_featurelink(self): |
|
190 view1 = api.View("view1") |
|
191 view1.add_group("Group one") |
|
192 view1.add_group("Group two") |
|
193 view1.get_group('Group one').add(api.FeatureLink("testing")) |
|
194 fea2 = api.Feature("feature2") |
|
195 view1.add_feature(fea2,"Group one") |
|
196 view1.add_feature(api.Feature("feature3"),"Group one") |
|
197 self.assertEquals(view1.list_groups(),['Group one', 'Group two']) |
|
198 |
|
199 view2 = view1._clone(recursion=True) |
|
200 self.compareview(view1,view2) |
|
201 self.assertEquals(view2.list_groups(),['Group one', 'Group two']) |
|
202 self.assertEquals(view2.get_group('Group one')._list(),['testing', 'feature2', 'feature3']) |
|
203 #self.assertEquals(view2.get_group('Group one').feature2._obj, fea2) |
|
204 |
|
205 |
|
206 if __name__ == '__main__': |
|
207 unittest.main() |
|
208 |