configurationengine/source/cone/public/tests/unittest_views.py
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
equal deleted inserted replaced
-1:000000000000 0:2e8eeb919028
       
     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