From: Jelte Jansen Date: Tue, 14 Feb 2012 14:03:12 +0000 (+0100) Subject: [1649] add a test for the failure scenario X-Git-Tag: trac2351_base~247^2~11^2~1^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=082faedd5757d9a4e6c63c52fca1aa266cb0b183;p=thirdparty%2Fkea.git [1649] add a test for the failure scenario --- 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 d10804bfac..49d072c053 100644 --- a/src/lib/python/isc/config/tests/config_data_test.py +++ b/src/lib/python/isc/config/tests/config_data_test.py @@ -185,6 +185,43 @@ class TestConfigData(unittest.TestCase): spec_part = find_spec_part(config_spec, "item6/value1") self.assertEqual({'item_name': 'value1', 'item_type': 'string', 'item_optional': True, 'item_default': 'default'}, spec_part) + def test_find_spec_part_lists(self): + # A few specific tests for list data + module_spec = isc.config.module_spec_from_file(self.data_path + + os.sep + + "spec31.spec") + config_spec = module_spec.get_config_spec() + + expected_spec_part = {'item_name': 'number', + 'item_type': 'integer', + 'item_default': 1, + 'item_optional': False} + + # First a check for a correct fetch + spec_part = find_spec_part(config_spec, + "/first_list_items[0]/second_list_items[1]/" + "map_element/list1[1]/list2[1]") + self.assertEqual(expected_spec_part, spec_part) + + # Leaving out an index should fail by default + self.assertRaises(isc.cc.data.DataNotFoundError, + find_spec_part, config_spec, + "/first_list_items[0]/second_list_items/" + "map_element/list1[1]/list2[1]") + + # But not for the last element + spec_part = find_spec_part(config_spec, + "/first_list_items[0]/second_list_items[1]/" + "map_element/list1[1]/list2") + self.assertEqual(expected_spec_part, spec_part) + + # And also not if strict_identifier is false (third argument) + spec_part = find_spec_part(config_spec, + "/first_list_items[0]/second_list_items/" + "map_element/list1[1]/list2[1]", False) + self.assertEqual(expected_spec_part, spec_part) + + def test_spec_name_list(self): name_list = spec_name_list(self.cd.get_module_spec().get_config_spec()) self.assertEqual(['item1', 'item2', 'item3', 'item4', 'item5', 'item6'], name_list)