diff --git a/src/lib/python/isc/config/tests/config_data_test.py b/src/lib/python/isc/config/tests/config_data_test.py index 446d89898d..97caad874f 100644 --- a/src/lib/python/isc/config/tests/config_data_test.py +++ b/src/lib/python/isc/config/tests/config_data_test.py @@ -657,7 +657,38 @@ class TestMultiConfigData(unittest.TestCase): self.assertEqual(MultiConfigData.LOCAL, status) self.assertRaises(isc.cc.data.DataTypeError, self.mcd.set_value, "Spec2/item5[a]", "asdf") - + + + def test_unset(self): + """ + Test the unset command works. + """ + module_spec = isc.config.module_spec_from_file(self.data_path + os.sep + "spec2.spec") + self.mcd.set_specification(module_spec) + self.mcd.set_specification(module_spec) + value, status = self.mcd.get_value("Spec2/item1") + # This is the default first + self.assertEqual(1, value) + self.assertEqual(MultiConfigData.DEFAULT, status) + # Unseting a default item does nothing. + self.mcd.unset("Spec2/item1") + value, status = self.mcd.get_value("Spec2/item1") + # This should be the default + self.assertEqual(1, value) + self.assertEqual(MultiConfigData.DEFAULT, status) + # Set it to something else + self.mcd.set_value("Spec2/item1", 42) + value, status = self.mcd.get_value("Spec2/item1") + self.assertEqual(42, value) + self.assertEqual(MultiConfigData.LOCAL, status) + # Try to unset it + self.mcd.unset("Spec2/item1") + value, status = self.mcd.get_value("Spec2/item1") + # This should be the default + self.assertEqual(1, value) + self.assertEqual(MultiConfigData.DEFAULT, status) + # Unset a nonexisting item. Should raise. + self.assertRaises(isc.cc.data.DataNotFoundError, self.mcd.unset, "Spec2/doesnotexist") def test_get_config_item_list(self): config_items = self.mcd.get_config_item_list()