|
@@ -135,6 +135,8 @@ class TestConfigManager(unittest.TestCase):
|
|
|
self.assert_(module_spec.get_module_name() not in self.cm.module_specs)
|
|
|
self.cm.set_module_spec(module_spec)
|
|
|
self.assert_(module_spec.get_module_name() in self.cm.module_specs)
|
|
|
+ self.assert_(module_spec.get_module_name() not in
|
|
|
+ self.cm.virtual_modules)
|
|
|
|
|
|
def test_remove_module_spec(self):
|
|
|
module_spec = isc.config.module_spec.module_spec_from_file(self.data_path + os.sep + "spec1.spec")
|
|
@@ -143,6 +145,30 @@ class TestConfigManager(unittest.TestCase):
|
|
|
self.assert_(module_spec.get_module_name() in self.cm.module_specs)
|
|
|
self.cm.remove_module_spec(module_spec.get_module_name())
|
|
|
self.assert_(module_spec.get_module_name() not in self.cm.module_specs)
|
|
|
+ self.assert_(module_spec.get_module_name() not in
|
|
|
+ self.cm.virtual_modules)
|
|
|
+
|
|
|
+ def test_add_remove_virtual_module(self):
|
|
|
+ module_spec = isc.config.module_spec.module_spec_from_file(
|
|
|
+ self.data_path + os.sep + "spec1.spec")
|
|
|
+ check_func = lambda: True
|
|
|
+
|
|
|
+ self.assert_(module_spec.get_module_name() not in self.cm.module_specs)
|
|
|
+ self.assert_(module_spec.get_module_name() not in
|
|
|
+ self.cm.virtual_modules)
|
|
|
+
|
|
|
+ self.cm.set_virtual_module(module_spec, check_func)
|
|
|
+
|
|
|
+ self.assert_(module_spec.get_module_name() in self.cm.module_specs)
|
|
|
+ self.assertEqual(self.cm.module_specs[module_spec.get_module_name()],
|
|
|
+ module_spec)
|
|
|
+ self.assertEqual(self.cm.virtual_modules[module_spec.get_module_name()],
|
|
|
+ check_func)
|
|
|
+
|
|
|
+ self.cm.remove_module_spec(module_spec.get_module_name())
|
|
|
+ self.assert_(module_spec.get_module_name() not in self.cm.module_specs)
|
|
|
+ self.assert_(module_spec.get_module_name() not in
|
|
|
+ self.cm.virtual_modules)
|
|
|
|
|
|
def test_get_module_spec(self):
|
|
|
module_spec = isc.config.module_spec.module_spec_from_file(self.data_path + os.sep + "spec1.spec")
|
|
@@ -312,6 +338,51 @@ class TestConfigManager(unittest.TestCase):
|
|
|
},
|
|
|
{'result': [0]})
|
|
|
|
|
|
+ def test_set_config_virtual(self):
|
|
|
+ """Test that if the module is virtual, we don't send it over the
|
|
|
+ message bus, but call the checking function.
|
|
|
+ """
|
|
|
+
|
|
|
+ def single_test(value, returnFunc, expectedResult):
|
|
|
+
|
|
|
+
|
|
|
+ self.called_with = None
|
|
|
+ def check_test(new_data):
|
|
|
+ self.called_with = new_data
|
|
|
+ return returnFunc()
|
|
|
+
|
|
|
+
|
|
|
+ self.cm.set_virtual_module(self.spec, check_test)
|
|
|
+
|
|
|
+
|
|
|
+ result = self.cm._handle_set_config_module(self.spec.
|
|
|
+ get_module_name(),
|
|
|
+ {'item1': value})
|
|
|
+
|
|
|
+
|
|
|
+ self.assertEqual(self.called_with['item1'], value)
|
|
|
+ self.assertEqual(result, {'result': expectedResult})
|
|
|
+ if expectedResult[0] == 0:
|
|
|
+
|
|
|
+ self.assertEqual(len(self.fake_session.message_queue), 1)
|
|
|
+ self.assertEqual({'command': [ 'config_update',
|
|
|
+ {'item1': value}]},
|
|
|
+ self.fake_session.get_message('Spec2', None))
|
|
|
+
|
|
|
+ self.assertEqual(len(self.fake_session.message_queue), 0)
|
|
|
+ else:
|
|
|
+
|
|
|
+ self.assertEqual(len(self.fake_session.message_queue), 0)
|
|
|
+
|
|
|
+
|
|
|
+ single_test(5, lambda: None, [0])
|
|
|
+
|
|
|
+ single_test(6, lambda: "Just error", [1, "Just error"])
|
|
|
+
|
|
|
+ def raiser():
|
|
|
+ raise Exception("Just exception")
|
|
|
+ single_test(7, raiser, [1, "Exception: Just exception"])
|
|
|
+
|
|
|
def test_set_config_all(self):
|
|
|
my_ok_answer = { 'result': [ 0 ] }
|
|
|
|