Browse Source

[1343] make sure changed named_set is stored when removing element

this bug resulted in the symptom that when removing from the default value, the removal wasn't stored
Jelte Jansen 13 years ago
parent
commit
8b52836cca

+ 1 - 0
src/lib/python/isc/config/ccsession.py

@@ -543,6 +543,7 @@ class UIModuleCCSession(MultiConfigData):
                 cur_map = {}
             if value in cur_map:
                 del cur_map[value]
+                self.set_value(identifier, cur_map)
             else:
                 raise isc.cc.data.DataNotFoundError(value + " not found in named_set " + str(identifier))
 

+ 11 - 0
src/lib/python/isc/config/tests/ccsession_test.py

@@ -756,6 +756,17 @@ class TestUIModuleCCSession(unittest.TestCase):
         uccs = self.create_uccs_named_set(fake_conn)
         value, status = uccs.get_value("/Spec32/named_set_item")
         self.assertEqual({'a': 1, 'b': 2}, value)
+
+        # make sure that removing from default actually removes it
+        uccs.remove_value("/Spec32/named_set_item", "a")
+        value, status = uccs.get_value("/Spec32/named_set_item")
+        self.assertEqual({'b': 2}, value)
+        self.assertEqual(uccs.LOCAL, status)
+
+        # ok, put it back now
+        uccs.add_value("/Spec32/named_set_item", "a")
+        uccs.set_value("/Spec32/named_set_item/a", 1)
+
         uccs.add_value("/Spec32/named_set_item", "foo")
         value, status = uccs.get_value("/Spec32/named_set_item")
         self.assertEqual({'a': 1, 'b': 2, 'foo': 3}, value)