Пример #1
0
    def test_add_feature_hierarchy_and_get_default_view(self):
        root = api.Configuration("data/simple.confml")
        conf = api.Configuration("test/root.confml")
        root.add_configuration(conf)
        conf2 = api.Configuration("test2/root.confml", namespace="com.nokia")
        root.add_configuration(conf2)
        conf.add_feature(api.Feature("group1"))
        conf.add_feature(api.Feature("group2"))
        conf.add_feature(api.Feature("feature1"))
        conf.group1.add_feature(api.Feature("group21"))
        conf.group1.group21.add_feature(api.Feature("feature211"))
        conf.group1.group21.add_feature(api.Feature("feature212"))
        conf.feature1.add_feature(api.Feature("feature11"))
        conf2.add_feature(api.Feature("wlan"))
        conf2.add_feature(api.Feature("bluetooth"))
        self.assertEquals(conf.list_all_features(), [
            'group1', 'group1.group21', 'group1.group21.feature211',
            'group1.group21.feature212', 'group2', 'feature1',
            'feature1.feature11'
        ])
        dview = conf.get_default_view()
        self.assertEquals(dview.list_features(),
                          ['group1', 'group2', 'feature1'])

        self.assertEquals(dview.list_groups(), ['com'])
        self.assertEquals(dview.list_all_features(), [
            'group1', 'group1.group21', 'group1.group21.feature211',
            'group1.group21.feature212', 'group2', 'feature1',
            'feature1.feature11', 'com.nokia.wlan', 'com.nokia.bluetooth'
        ])
Пример #2
0
    def test_dumps_and_loads_configuration_hierarchy_with_data(self):
        root = api.Configuration("root.confml")
        layer = api.Configuration("layer1")
        conf = api.Configuration("test")
        conf.add_feature(api.Feature("feature1"))
        conf.add_feature(api.Feature("feature2"))
        conf.feature1.add_feature(api.Feature("feature11"))
        conf.feature1.add_feature(api.Feature("feature12"))
        conf.feature1.set_value(1)
        conf.feature2.set_value(2)
        layer.add_configuration(conf)
        root.add_configuration(layer)
        root.add_configuration(api.Configuration("layer2"))
        root.get_default_view().feature1.feature11.set_value("testing11")
        root.get_default_view().feature1.set_value("test1")
        dumped = persistentdictionary.DictWriter().dumps(root)
        root2 = persistentdictionary.DictReader().loads(dumped)
        self.assertEquals(root.list_all_features(), root2.list_all_features())
        self.assertEquals(root2.get_default_view().feature1.get_value(),
                          "test1")
        self.assertEquals(root2.get_default_view().feature2.get_value(), 2)
        self.assertEquals(
            root2.get_default_view().feature1.feature11.get_value(),
            "testing11")

        self.assertEquals([
            data.find_parent(type=api.Configuration).get_path()
            for data in root2.get_all_datas()
        ], ['test', 'test', 'layer2', 'layer2'])
Пример #3
0
 def test_add_several_and_remove_last_layer(self):
     conf = api.Configuration("data/simple.confml")
     layer = api.Configuration("laa")
     conf.add_configuration(layer)
     conf.add_configuration(api.Configuration("foo"))
     conf.add_configuration(api.Configuration("faa"))
     conf.remove_configuration("faa")
     self.assertEquals(conf.list_configurations()[0], "laa")
     self.assertEquals(conf.list_configurations()[1], "foo")
Пример #4
0
    def test_add_several_and_remove_all_configurations(self):
        conf = api.Configuration("data/simple.confml")
        layer = api.Configuration("laa")
        conf.add_configuration(layer)
        conf.add_configuration(api.Configuration("foo"))
        conf.add_configuration(api.Configuration("faa"))
        for layername in conf.list_configurations():
            conf.remove_configuration(layername)

        self.assertTrue(len(conf.list_configurations()) == 0)
Пример #5
0
 def test_add_several_and_try_to_remove_not_existing(self):
     conf = api.Configuration("data/simple.confml")
     layer = api.Configuration("laa")
     conf.add_configuration(layer)
     conf.add_configuration(api.Configuration("foo"))
     conf.add_configuration(api.Configuration("faa"))
     try:
         conf.remove_configuration("notthere")
         self.fail("removing of nonexisting layer succeeds!")
     except exceptions.NotFound:
         pass
Пример #6
0
 def test_get_root_configuration(self):
     conf = api.Configuration("testmee.confml")
     self.assertEquals(conf.get_root_configuration(), conf)
     conf.add_configuration(api.Configuration("foo/foo.confml"))
     conf.add_configuration(api.Configuration("fii/fii.confml"))
     conf.fii__fii_confml.add_configuration(
         api.Configuration("fii/foo.confml"))
     self.assertEquals(conf.fii__fii_confml.get_root_configuration(), conf)
     self.assertEquals(conf.foo__foo_confml.get_root_configuration(), conf)
     self.assertEquals(
         conf.fii__fii_confml.fii__foo_confml.get_root_configuration(),
         conf)
Пример #7
0
    def test_dumps_and_loads_configuration_hierarchy(self):
        root = api.Configuration("root.confml")
        root.add_configuration(api.Configuration("layer1"))
        layer = api.Configuration("layer2")
        conf = api.Configuration("test")
        conf.add_feature(api.Feature("feature1"))
        conf.add_feature(api.Feature("feature2"))
        conf.feature1.add_feature(api.Feature("feature11"))
        conf.feature1.add_feature(api.Feature("feature12"))
        layer.add_configuration(conf)
        root.add_configuration(layer)
        dumped = persistentdictionary.DictWriter().dumps(root)

        root2 = persistentdictionary.DictReader().loads(dumped)
        self.assertEquals(root.list_all_features(), root2.list_all_features())
Пример #8
0
 def test_add_configuration_with_features_to_root(self):
     root = api.Configuration("test", namespace="com.nokia")
     conf1 = api.Configuration("foo/foo.confml")
     conf1.add_feature(api.Feature("feature1"))
     conf1.add_feature(api.Feature("feature12"), "feature1")
     conf2 = api.Configuration("bar/bar.confml")
     conf2.add_feature(api.Feature("feature2"))
     conf2.add_feature(api.Feature("feature22"), "feature2")
     root.add_configuration(conf1)
     self.assertEquals(root.list_all_features(),
                       ['feature1', 'feature1.feature12'])
     root.add_configuration(conf2)
     self.assertEquals(root.list_all_features(), [
         'feature1', 'feature1.feature12', 'feature2', 'feature2.feature22'
     ])
 def test_get_set_template_single_data_level(self):
     # Create a sequence feature with only a single level of sub-features
     # (i.e. no sub-sub-features)
     config = api.Configuration('foo.confml')
     seq = api.FeatureSequence("seq")
     seq.add_feature(api.Feature('child1'))
     seq.add_feature(api.Feature('child2'))
     seq.add_feature(api.Feature('child3'))
     config.add_feature(seq)
     
     # Add a template for the sequence with the data elements under it
     # in a different order than what the features were defined in
     template_data = api.Data(ref='seq', template=True)
     template_data.add(api.Data(ref='child2', value='foo2'))
     template_data.add(api.Data(ref='child3', value='foo3'))
     template_data.add(api.Data(ref='child1', value='foo1'))
     config.add_data(template_data)
     
     # Get the template data (should be in order)
     dview = config.get_default_view()
     seq = dview.get_feature('seq')
     self.assertEquals(seq.get_template(), ['foo1', 'foo2', 'foo3'])
     
     seq.set_template(['x1', 'x2', 'x3'])
     self.assertEquals(seq.get_template(), ['x1', 'x2', 'x3'])
     
     seq.set_template(None)
     self.assertEquals(seq.get_template(), None)
     
     # Test attempting to set invalid template data
     self.assertRaises(TypeError, seq.set_template, 'foo')
     self.assertRaises(ValueError, seq.set_template, [])
     self.assertRaises(ValueError, seq.set_template, ['foo', 'bar'])
     self.assertRaises(ValueError, seq.set_template, [['foo', 'x'], 'bar'])
    def test_sequence_add_data_and_set_template(self):
        # Create a simple configuration with a sequence feature
        config = api.Configuration('foo.confml')
        fea = api.Feature('fea')
        config.add_feature(fea)
        seq = api.FeatureSequence("seq")
        fea.add_feature(seq)
        seq.add_feature(api.Feature('child1'))
        seq.add_feature(api.Feature('child2'))
        
        sequence = config.get_default_view().get_feature('fea.seq')
        
        # Check that initially the sequence is empty
        self.assertEquals(sequence.get_template(), None)
        self.assertEquals(sequence.value, [])
        
        # Add some data and check again
        sequence.add_sequence(['row1', 'foo'])
        sequence.add_sequence(['row2', 'foo']) 
        self.assertEquals(sequence.get_template(), None)
        self.assertEquals(sequence.value, [['row1', 'foo'],
                                           ['row2', 'foo']])

        # Setting the template should not affect the data
        sequence.set_template(['t1', 't2'])
        self.assertEquals(sequence.get_template(), ['t1', 't2'])
        self.assertEquals(sequence.value, [['row1', 'foo'],
                                           ['row2', 'foo']])
        
        sequence.set_template(['T1', 'T2'])
        sequence.add_sequence(['row3', 'foo'])
        self.assertEquals(sequence.get_template(), ['T1', 'T2'])
        self.assertEquals(sequence.value, [['row1', 'foo'],
                                           ['row2', 'foo'],
                                           ['row3', 'foo']])
Пример #11
0
 def test_create_views_and_remove_one(self):
     conf = api.Configuration("data/simple.confml")
     conf.create_view("view1")
     conf.create_view("view2")
     conf.create_view("view3")
     conf.remove_view('view2')
     self.assertEquals(conf.list_views(), ['view1', 'view3'])
Пример #12
0
    def test_save_load_report_data_with_some_content(self):
        rdata = generation_report.ReportData()
        p = api.Project(api.Storage.open(TEMP_DIR, 'w'))
        config = api.Configuration('test.confml')
        fea = config.create_feature('Foo')
        fea.create_feature('Child1')
        fea.create_feature('Child2')
        c3 = fea.create_feature('Child3')
        c3.value = 'test'
        rdata.log = ['one', 'two', 'three']
        p.add_configuration(config)
        p.save()
        rdata.context = plugin.GenerationContext(phase="pre",
                                                 tags={'target': 'rofs3'},
                                                 output='foo',
                                                 configuration=config,
                                                 project=p)

        tmpfile = os.path.join(TEMP_DIR, 'repdata.dat')
        generation_report.save_report_data(rdata, tmpfile)
        rdata2 = generation_report.load_report_data(tmpfile)
        self.assertEquals(repr(rdata), repr(rdata2))
        self.assertEquals(rdata.log, rdata2.log)
        self.assertEquals(rdata.log, rdata2.log)
        self.assertEquals(rdata2.context.phase, 'pre')
        self.assertEquals(rdata2.context.tags, {'target': 'rofs3'})
        self.assertEquals(rdata2.context.output, 'foo')
        self.assertEquals(rdata2.context.configuration.Foo.Child3.fqr,
                          'Foo.Child3')
        self.assertEquals(rdata2.context.configuration.Foo.Child3.get_value(),
                          'test')
        self.assertEquals(rdata2.context.configuration.Foo.Child3.value,
                          'test')
    def test_create_configuration_with_sequence_and_set_value_via_column(self):
        fea= api.FeatureSequence("foo")
        fea.add_feature(api.Feature('child1'))
        fea.add_feature(api.Feature('child2'))
        fea.add_feature(api.Feature('child3'))
        config = api.Configuration('foo.confml')
        config.add_feature(fea)
        dview = config.get_default_view()
        foofea = dview.get_feature('foo')
        # Test adding a data row with array
        foofea.value = [['1','2','3'],['4','5','6'],['7','8','9']]
        self.assertEquals(foofea.get_value(), [['1','2','3'],
                                               ['4','5','6'],
                                               ['7','8','9']
                                               ])

        api.set_column_value(foofea, 'child1', ['0','0','0'])
        self.assertEquals(foofea.get_value(), [['0','2','3'],
                                               ['0','5','6'],
                                               ['0','8','9']
                                               ])
        self.assertRaises(exceptions.ConeException, api.set_column_value, foofea, 'child2', 'over')
        self.assertRaises(exceptions.ConeException, api.set_column_value, foofea, 'child2', ['0','0','0', 'over'])
        foofea.child3.value = ['0','0','0'] 
        self.assertEquals(foofea.get_value(), [['0','2','0'],
                                               ['0','5','0'],
                                               ['0','8','0']
                                               ])
 def test_create_configuration_with_sequence_and_add_sequence_value_directly(self):
     fea= api.FeatureSequence("foo")
     fea.add_feature(api.Feature('child1'))
     fea.add_feature(api.Feature('child2'))
     fea.add_feature(api.Feature('child3'))
     config = api.Configuration('foo.confml')
     config.add_feature(fea)
     dview = config.get_default_view()
     foofea = dview.get_feature('foo')
     # Test adding a data row with array
     foofea.set_value([['1','2','3'],
                      ['4','5','6'],
                      ['7','8','9']
                      ])
     self.assertEquals(len(foofea.get_data()), 3)
     self.assertEquals(foofea.get_value(), [['1','2','3'],
                                            ['4','5','6'],
                                            ['7','8','9']
                                            ])
     
     # Check the data element values
     data_elem_values = [(d.fqr, d.value) for d in config._traverse(type=api.Data)]
     self.assertEquals(data_elem_values,
         [('foo', None),
          ('foo.child1', '1'),
          ('foo.child2', '2'),
          ('foo.child3', '3'),
          ('foo', None),
          ('foo.child1', '4'),
          ('foo.child2', '5'),
          ('foo.child3', '6'),
          ('foo', None),
          ('foo.child1', '7'),
          ('foo.child2', '8'),
          ('foo.child3', '9'),])
Пример #15
0
 def test_meta_desc(self):
     conf = api.Configuration("test.confml")
     conf.meta = {'test':'data','test2':'value'}
     conf.desc = "Description osos"
     self.assertEquals(conf.meta['test'],"data")
     self.assertEquals(conf.meta['test2'],"value")
     self.assertEquals(conf.desc,"Description osos")
    def test_create_feature_seq_and_access_feature_value_with_property(self):
        config = api.Configuration('foo.confml')
        fea= api.FeatureSequence("foo")
        fea.add_feature(api.Feature('child1'))
        fea.add_feature(api.Feature('child11'),'child1')
        fea.add_feature(api.Feature('child2'))
        fea.add_feature(api.Feature('child3'))
        config.add_feature(fea)
        dview = config.get_default_view()
        foofea = dview.get_feature('foo')
        # Test adding a data row with array
        foofea.set_value([[['1'],'2','3'],
                         [['4'],'5','6'],
                         [['7'],'8','9']
                         ])
        self.assertEquals(foofea.value, [[['1'],'2','3'],
                                         [['4'],'5','6'],
                                         [['7'],'8','9']
                                        ])

        foofea.value = [[['1'],'2','3'],
                         [['7'],'8','9']
                        ]
        
        self.assertEquals(foofea.data[0].value,[['1'],'2','3'])
        self.assertEquals(foofea.data[1].value,[['7'],'8','9'])
        self.assertEquals(foofea.data[1][1].value,'8')
        self.assertEquals(foofea.get_value(), [[['1'],'2','3'],
                                               [['7'],'8','9']
                                               ])
        self.assertEquals(foofea.child1.child11.value,['1','7'])
        self.assertEquals(foofea.child1.value,[['1'],['7']])
    def test_create_configuration_with_sequence_and_mapping_properties(self):
        fea = api.FeatureSequence("SequenceSetting", mapKey='KeySubSetting', mapValue="ValueSubSetting")
        fea.add_feature(api.Feature('KeySubSetting'))
        fea.add_feature(api.Feature('ValueSubSetting'))
        
        config = api.Configuration('foo.confml')
        config.add_feature(fea)
        dview = config.get_default_view()
        seqfea = dview.get_feature("SequenceSetting")

        self.assertEquals(seqfea.mapKey, "KeySubSetting")
        self.assertEquals(seqfea.mapValue, "ValueSubSetting")
        #add item 1
        data = api.Data(ref='SequenceSetting')
        data._add(api.Data(ref='KeySubSetting',value='Default'))
        data._add(api.Data(ref='ValueSubSetting',value='Default value'))
        seqfea.add_data(data)
        
        #add item 2
        data1 = api.Data(ref='SequenceSetting', policy='append')
        data1._add(api.Data(ref='KeySubSetting',value='Key 1'))
        data1._add(api.Data(ref='ValueSubSetting',value='Value 1'))
        seqfea.add_data(data1)
        
        self.assertEquals(len(seqfea.get_data()), 2)
Пример #18
0
 def test_dumps_simple(self):
     root = api.Configuration("root", namespace="com.nokia")
     conf = root.create_configuration("test.confml")
     dumped = persistentdictionary.DictWriter().dumps(conf)
     dict = dumped['Configuration']['dict']
     self.assertEquals(dict['path'], 'test.confml')
     self.assertEquals(dict['namespace'], 'com.nokia')
Пример #19
0
 def test_add_a_include_with_dots_in_path_and_remove_it(self):
     conf = api.Configuration("simple.confml")
     conf.include_configuration("test/foo.bar/data.confml")
     self.assertEquals(conf.list_configurations(),
                       ['test/foo.bar/data.confml'])
     conf.remove_configuration("test/foo.bar/data.confml")
     self.assertEquals(len(conf.list_configurations()), 0)
Пример #20
0
 def test_add_features_and_create_view_with_links(self):
     conf = api.Configuration("foo/foo.confml")
     conf.add_feature(api.Feature('feature1'))
     conf.add_feature(api.Feature('feature2'))
     conf.add_feature(api.Feature('feature3'))
     conf.add_feature(api.Feature('feature4'))
     conf.add_feature(api.Feature('feature11'), 'feature1')
     conf.add_feature(api.Feature('feature12'), 'feature1')
     conf.create_view('fea1')
     view1 = conf.get_view('fea1')
     view1.create_group('thegruppe1')
     view1.get_group('thegruppe1').add(
         api.FeatureLink('feature1.feature11'))
     view1.add(api.FeatureLink('feature1.*'))
     view1.populate()
     self.assertEquals(view1.list_all_features(), [
         'thegruppe1.proxy_feature1_feature11', 'proxy_feature1_feature11',
         'proxy_feature1_feature12'
     ])
     fpr = view1.get_feature('thegruppe1.proxy_feature1_feature11')
     self.assertEquals(
         fpr._obj.fqr,
         conf.get_default_view().get_feature('feature1.feature11').fqr)
     self.assertEquals(view1.list_all_features(), [
         'thegruppe1.proxy_feature1_feature11', 'proxy_feature1_feature11',
         'proxy_feature1_feature12'
     ])
 def test_set_ref_and_get_all(self):
     conf =  api.Configuration("test.confml", namespace="com.nokia.s60")
     conf.add_feature(api.Feature("foo"))
     fea = conf.get_feature("foo")
     fea.set_ref("wlan")
     self.assertEquals(fea.get_ref(),"wlan")
     self.assertEquals(fea.namespace,"com.nokia.s60")
     self.assertEquals(fea.fqr,"com.nokia.s60.wlan")
Пример #22
0
 def test_create_featuresequence_and_get_empty_data(self):
     conf = api.Configuration("foo/foo.confml")
     conf.add_feature(api.FeatureSequence('feature1'))
     conf.add_feature(api.Feature('child1'), 'feature1')
     conf.add_feature(api.Feature('child2'), 'feature1')
     conf.add_feature(api.Feature('child3'), 'feature1')
     self.assertEquals(conf.get_feature('feature1').get_data(), [])
     self.assertEquals(conf.get_feature('feature1').get_value(), [])
Пример #23
0
 def test_create_views_and_remove_all(self):
     conf = api.Configuration("data/simple.confml")
     conf.create_view("view1")
     conf.create_view("view2")
     conf.create_view("view3")
     for view in conf.list_views():
         conf.remove_view(view)
     self.assertEquals(conf.list_views(), [])
 def test_create_configuration_and_access_feature_type_with_property(self):
     config = api.Configuration('foo.confml')
     fea= api.Feature("foo", type='int')
     config.add_feature(fea)
     self.assertEquals(fea.type, 'int') 
     dview = config.get_default_view()
     feaproxy = dview.get_feature('foo')
     self.assertEquals(feaproxy.type, 'int') 
Пример #25
0
 def test_get_flat_configuration_with_single_config_hierarchy(self):
     conf = api.Configuration('foo.confml')
     conf.include_configuration('test1/root.confml')
     conf.include_configuration('test2/root.confml')
     conf.include_configuration('test3/root.confml')
     self.assertEquals(
         configroot2flat.get_flat_includes(conf),
         ['test1/root.confml', 'test2/root.confml', 'test3/root.confml'])
Пример #26
0
 def test_set_data_to_configuration(self):
     conf = api.Configuration("foo/foo.confml")
     conf.add_data(api.Data(fqr='feature1', value=123))
     self.assertEquals(conf.get_data('feature1').get_value(), 123)
     conf.add_data(api.Data(fqr='feature1.feature12', value="test"))
     self.assertEquals(
         conf.get_data('feature1.feature12').get_value(), "test")
     self.assertEquals(conf.data.feature1.feature12.get_value(), "test")
Пример #27
0
 def test_create_configuration_and_features(self):
     conf = api.Configuration("data/simple.confml")
     fea = conf.create_feature("test")
     self.assertEquals(conf.get_feature('test'), fea)
     fea = conf.create_feature("test1", name="test name")
     self.assertEquals(conf.get_feature('test1').name, 'test name')
     fea.create_feature("subfea", name="subfea name")
     self.assertEquals(conf.list_all_features(),
                       ['test', 'test1', 'test1.subfea'])
Пример #28
0
 def test_get_configuration_and_path(self):
     conf1 = api.Configuration("testmee.confml")
     fea = conf1.create_feature('test1')
     conf1.create_feature('test2')
     subfea = fea.create_feature('child1')
     self.assertEquals(fea.get_configuration(), conf1)
     self.assertEquals(fea.get_configuration_path(), 'testmee.confml')
     self.assertEquals(subfea.get_configuration(), conf1)
     self.assertEquals(subfea.get_configuration_path(), 'testmee.confml')
Пример #29
0
 def test_add_subconfiguration(self):
     conf = api.Configuration("test", namespace="com.nokia")
     conf.create_configuration("foo/root.confml")
     conf.create_configuration("platforms/s60.confml")
     dconf = api.Configuration('confml/data.confml')
     sconf = conf.get_configuration('foo/root.confml')
     sconf.add_configuration(dconf)
     self.assertEquals(conf.list_configurations(), [
         'foo/root.confml',
         'platforms/s60.confml',
     ])
     self.assertEquals(conf.list_all_configurations(), [
         'foo/root.confml', 'foo/confml/data.confml', 'platforms/s60.confml'
     ])
     self.assertEquals(
         conf.get_configuration(
             'foo/root.confml').list_all_configurations(),
         ['confml/data.confml'])
 def test_create_configuration_with_sequence_and_get_default_view(self):
     fea= api.FeatureSequence("foo")
     fea.add_feature(api.Feature('child1'))
     fea.add_feature(api.Feature('child2'))
     fea.add_feature(api.Feature('child3'))
     config = api.Configuration('foo.confml')
     config.add_feature(fea)
     dview = config.get_default_view()
     self.assertEquals(dview.list_all_features(),['foo','foo.child1','foo.child2','foo.child3'])