--- a/configurationengine/source/plugins/common/ConeRulePlugin/ruleplugin/evals/tests/unittest_layer_utils.py Fri Mar 12 08:30:17 2010 +0200
+++ b/configurationengine/source/plugins/common/ConeRulePlugin/ruleplugin/evals/tests/unittest_layer_utils.py Tue Aug 10 14:29:28 2010 +0300
@@ -15,16 +15,9 @@
#
import unittest
-import os, shutil
-import sys
-import pkg_resources
-import re
-import logging
+import os
-import __init__
-
-from ruleplugin import ruleml, relations
-from cone.public import api, exceptions
+from cone.public import api
from ruleplugin.evals import layer_utils
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
@@ -86,7 +79,163 @@
self.assertFalse(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value1"),8,9))
self.assertFalse(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),0,1))
self.assertTrue(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),1,5))
+
+ self.assertFalse(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),3,5))
+ self.assertFalse(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),5,3))
+ self.assertFalse(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),-2,-1))
+ self.assertFalse(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),-1,-2))
+
+ self.assertTrue(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),2,5))
+ self.assertTrue(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),5,2))
+ self.assertTrue(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),-3,-1))
+ self.assertTrue(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),-1,-3))
+
+ self.assertFalse(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),3,1000))
+ self.assertFalse(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),-1000,1))
+ self.assertTrue(layer_utils.changed_on_layers(dview.get_feature("StringFeatureTest.Value2"),-1000,1000))
+ def test_layers_used_single_layer(self):
+ project = api.Project(api.Storage.open(os.path.join(ROOT_PATH,'layer_filtering_project')))
+ root_config = project.get_configuration('root.confml')
+ layer_base_config = root_config.get_configuration_by_index(0)
+ layer1_config = root_config.get_configuration_by_index(1)
+ layer2_config = root_config.get_configuration_by_index(2)
+ layer3_config = root_config.get_configuration_by_index(3)
+ layer4_config = root_config.get_configuration_by_index(4)
+ layer5_config = root_config.get_configuration_by_index(5)
+ layer6_config = root_config.get_configuration_by_index(6)
+ layer7_config = root_config.get_configuration_by_index(7)
+ layer8_config = root_config.get_configuration_by_index(8)
+ layer9_config = root_config.get_configuration_by_index(9)
+ layer10_config = root_config.get_configuration_by_index(10)
+ layer11_config = root_config.get_configuration_by_index(11)
+
+ self.assertTrue(layer_utils.layers_used(root_config, [root_config], {'target' : ['uda']}))
+ self.assertTrue(layer_utils.layers_used(root_config, [root_config], {'target' : ['rofs2']}))
+
+ self.assertTrue( layer_utils.layers_used(root_config, [layer_base_config], {'target' : ['uda']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer1_config], {'target' : ['uda']}))
+ self.assertFalse(layer_utils.layers_used(root_config, [layer2_config], {'target' : ['uda']}))
+ self.assertFalse(layer_utils.layers_used(root_config, [layer3_config], {'target' : ['uda']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer4_config], {'target' : ['uda']}))
+ self.assertFalse(layer_utils.layers_used(root_config, [layer5_config], {'target' : ['uda']}))
+
+ self.assertTrue( layer_utils.layers_used(root_config, [layer_base_config], {'target' : ['rofs2']}))
+ self.assertFalse(layer_utils.layers_used(root_config, [layer1_config], {'target' : ['rofs2']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer2_config], {'target' : ['rofs2']}))
+ self.assertFalse(layer_utils.layers_used(root_config, [layer3_config], {'target' : ['rofs2']}))
+
+ self.assertTrue( layer_utils.layers_used(root_config, [layer5_config], {'target' : ['rofs3']}))
+ self.assertFalse(layer_utils.layers_used(root_config, [layer5_config], {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, [layer6_config], {'target' : ['rofs2']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer6_config], {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer6_config], {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, [layer7_config], {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer7_config], {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, [layer8_config], {'target' : ['rofs3']}))
+ self.assertFalse(layer_utils.layers_used(root_config, [layer8_config], {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, [layer9_config], {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer9_config], {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, [layer10_config], {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer10_config], {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, [layer11_config], {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, [layer11_config], {'target' : ['uda']}))
+
+ def test_layers_used_regex(self):
+ project = api.Project(api.Storage.open(os.path.join(ROOT_PATH,'layer_filtering_project')))
+ root_config = project.get_configuration('root.confml')
+
+ self.assertTrue(layer_utils.layers_used(root_config, r'/base/', {'target' : ['uda']}))
+ self.assertTrue(layer_utils.layers_used(root_config, r'/base/', {'target' : ['rofs2']}))
+
+ self.assertTrue( layer_utils.layers_used(root_config, r'/base/', {'target' : ['uda']}))
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer1/', {'target' : ['uda']}))
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer2/', {'target' : ['uda']}))
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer3/', {'target' : ['uda']}))
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer4/', {'target' : ['uda']}))
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer5/', {'target' : ['uda']}))
+
+ self.assertTrue( layer_utils.layers_used(root_config, r'/base/', {'target' : ['rofs2']}))
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer1/', {'target' : ['rofs2']}))
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer2/', {'target' : ['rofs2']}))
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer3/', {'target' : ['rofs2']}))
+
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer5/', {'target' : ['rofs3']}))
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer5/', {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer6/', {'target' : ['rofs2']}))
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer6/', {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer6/', {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer7/', {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer7/', {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer8/', {'target' : ['rofs3']}))
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer8/', {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer9/', {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer9/', {'target' : ['uda']}))
+
+ self.assertFalse(layer_utils.layers_used(root_config, r'/layer10/', {'target' : ['rofs3']}))
+ self.assertTrue( layer_utils.layers_used(root_config, r'/layer10/', {'target' : ['uda']}))
+
+ def test_changed_on_layers_regex(self):
+ project = api.Project(api.Storage.open(os.path.join(ROOT_PATH, 'layerproject')))
+ config = project.get_configuration('foobar_root.confml')
+ dview = config.get_default_view()
+
+ def check(regex, feature, expected):
+ self.assertEquals(layer_utils.changed_on_layers_regex(dview.get_feature(feature), regex),
+ expected)
+
+ check(r'.*', 'TestFeature.CustvariantManual', True)
+
+ regex = r'/custvariant(_.*)?/manual/'
+ check(regex, 'TestFeature.CustvariantManual', True)
+ check(regex, 'TestFeature.CustvariantConfigurator', False)
+ check(regex, 'TestFeature.Rnd', False)
+
+ regex = r'/custvariant(_.*)?/configurator/'
+ check(regex, 'TestFeature.CustvariantManual', False)
+ check(regex, 'TestFeature.CustvariantConfigurator', True)
+ check(regex, 'TestFeature.Rnd', False)
+
+ regex = r'/custvariant(_.*)?/'
+ check(regex, 'TestFeature.CustvariantManual', True)
+ check(regex, 'TestFeature.CustvariantConfigurator', True)
+ check(regex, 'TestFeature.Rnd', False)
+
+ regex = r'foo/bar/'
+ check(regex, 'StringFeatureTest.Value1', False)
+ check(regex, 'TestFeature.CustvariantManual', True)
+ check(regex, 'TestFeature.CustvariantConfigurator', True)
+ check(regex, 'TestFeature.Rnd', True)
+
+ regex = r'/rnd/'
+ check(regex, 'TestFeature.CustvariantManual', False)
+ check(regex, 'TestFeature.CustvariantConfigurator', False)
+ check(regex, 'TestFeature.Rnd', True)
+
+ def test_changed_on_custvariant_layer(self):
+ project = api.Project(api.Storage.open(os.path.join(ROOT_PATH, 'layerproject')))
+ config = project.get_configuration('foobar_root.confml')
+ dview = config.get_default_view()
+
+ def check(feature, expected):
+ self.assertEquals(layer_utils.changed_on_custvariant_layer(dview.get_feature(feature)),
+ expected)
+ check('StringFeatureTest.Value1', False)
+ check('StringFeatureTest.Value2', False)
+ check('TestFeature.CustvariantManual', True)
+ check('TestFeature.CustvariantConfigurator', True)
+ check('TestFeature.Rnd', False)
+
if __name__ == "__main__":
unittest.main()