Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_anchorless_list_element_error(self):
with pytest.raises(ValueError) as ex:
append_list_element({}, YAMLPath("foo"), "bar")
assert -1 < str(ex.value).find("Impossible to add an Anchor")
("Processor::_get_optional_nodes: Element <{}>{} is"
+ " unknown in the data! Applying default, <{}>{}."
).format(segment_type, except_segment, type(value), value)
)
if isinstance(data, list):
self.logger.debug(
"Processor::_get_optional_nodes: Dealing with a list"
)
if (
segment_type is PathSegmentTypes.ANCHOR
and isinstance(stripped_attrs, str)
):
next_node = build_next_node(
yaml_path, depth + 1, value
)
new_ele = append_list_element(
data, next_node, stripped_attrs
)
for node_coord in self._get_optional_nodes(
new_ele, yaml_path, value, depth + 1,
data, len(data) - 1
):
matched_nodes += 1
yield node_coord
elif (
segment_type in [
PathSegmentTypes.INDEX,
PathSegmentTypes.KEY]
):
if isinstance(stripped_attrs, int):
newidx = stripped_attrs
else:
else:
try:
newidx = int(str(stripped_attrs))
except ValueError:
raise YAMLPathException(
("Cannot add non-integer {} subreference"
+ " to lists")
.format(str(segment_type)),
str(yaml_path),
except_segment
)
for _ in range(len(data) - 1, newidx):
next_node = build_next_node(
yaml_path, depth + 1, value
)
append_list_element(data, next_node)
for node_coord in self._get_optional_nodes(
data[newidx], yaml_path, value,
depth + 1, data, newidx
):
matched_nodes += 1
yield node_coord
else:
raise YAMLPathException(
"Cannot add {} subreference to lists"
.format(str(segment_type)),
str(yaml_path),
except_segment
)
elif isinstance(data, dict):
self.logger.debug(
"Processor::_get_optional_nodes: Dealing with a"