Commit bbd3fd0f authored by Jelte Jansen's avatar Jelte Jansen
Browse files

[1649] one more check, and doc update

parent c70cfef4
......@@ -178,10 +178,10 @@ def find_spec_part(element, identifier, strict_identifier = True):
Parameters:
element: The specification element to start the search in
identifier: The element to find (relative to element above)
strict_identifier: If True (the default), additional checking occurs,
currently whether or not an index is specified
for list elements in the identifier that are not
the leaf node
strict_identifier: If True (the default), additional checking occurs.
Currently the only check is whether a list index is
specified (except for the last part of the
identifier)
Raises a DataNotFoundError if the data is not found, or if
strict_identifier is True and any non-final identifier parts
(i.e. before the last /) identify a list element and do not contain
......@@ -645,7 +645,7 @@ class MultiConfigData:
Throws DataNotFoundError if the identifier is bad
"""
result = []
if not identifier:
if not identifier or identifier == "/":
# No identifier, so we need the list of current modules
for module in self._specifications.keys():
if all:
......@@ -658,9 +658,9 @@ class MultiConfigData:
result.append(entry)
else:
# Strip off start and end slashes, if they are there
if identifier[0] == '/':
if len(identifier) > 0 and identifier[0] == '/':
identifier = identifier[1:]
if identifier[-1] == '/':
if len(identifier) > 0 and identifier[-1] == '/':
identifier = identifier[:-1]
module, sep, id = identifier.partition('/')
spec = self.get_module_spec(module)
......
......@@ -520,15 +520,25 @@ class TestMultiConfigData(unittest.TestCase):
self.assertEqual(MultiConfigData.DEFAULT, status)
def test_get_value_maps(self):
maps = self.mcd.get_value_maps()
self.assertEqual([], maps)
module_spec = isc.config.module_spec_from_file(self.data_path + os.sep + "spec1.spec")
self.mcd.set_specification(module_spec)
expected = [{'default': False,
'type': 'module',
'name': 'Spec1',
'value': None,
'modified': False}]
maps = self.mcd.get_value_maps()
self.assertEqual([{'default': False, 'type': 'module', 'name': 'Spec1', 'value': None, 'modified': False}], maps)
self.assertEqual(expected, maps)
maps = self.mcd.get_value_maps("/")
self.assertEqual(expected, maps)
maps = self.mcd.get_value_maps('Spec2')
self.assertEqual([], maps)
maps = self.mcd.get_value_maps('Spec1')
......@@ -602,6 +612,7 @@ class TestMultiConfigData(unittest.TestCase):
]
maps = self.mcd.get_value_maps("/Spec22/value9")
self.assertEqual(expected, maps)
# A slash at the end should not produce different output
maps = self.mcd.get_value_maps("/Spec22/value9/")
self.assertEqual(expected, maps)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment