Skip to content
Snippets Groups Projects
Commit 17c7eb7f authored by Alexander Schlemmer's avatar Alexander Schlemmer
Browse files

TST: more tests for xml converter

parent 3a9ca4f3
No related branches found
No related tags found
2 merge requests!181Release 0.9.0,!174XML Converter
Pipeline #54430 failed
......@@ -239,10 +239,10 @@ def test_namespace_xml(converter_registry):
xml_text = """
<root xmlns="default-namespace" xmlns:test="alternative-namespace">
<node1>
<node1 active="true">
Bla
</node1>
<node1>
<node1 active="true" size="45">
text
<node2 xmlns="sub-namespace">
<node3>
......@@ -256,6 +256,7 @@ def test_namespace_xml(converter_registry):
</root>
"""
# Test unsupported xpath (containing text()):
converter = XMLTagConverter(yaml.safe_load("""
type: XMLTag
match_tag: "{default-namespace}root"
......@@ -270,6 +271,7 @@ default_namespace: default
with pytest.raises(RuntimeError, match="Only standard xml nodes.*"):
converter.create_children(GeneralStore(), tag)
# Test complex xml using namespaces and text nodes:
converter = XMLTagConverter(yaml.safe_load("""
type: XMLTag
match_tag: "{default-namespace}root"
......@@ -285,3 +287,36 @@ tags_as_children: false
assert children[0].value.strip() == "Bla"
assert children[1].name == "{default-namespace}node1[2]/text()"
assert children[1].value.strip() == "text"
# Check child generation of attributes:
converter = XMLTagConverter(yaml.safe_load("""
type: XMLTag
match_tag: "{default-namespace}root"
xpath: "default:node1"
default_namespace: default
attribs_as_children: true
text_as_children: false
tags_as_children: false
"""), "TestXMLTagConverter", converter_registry)
children = converter.create_children(GeneralStore(), tag)
assert len(children) == 3
assert children[0].name == "{default-namespace}node1[1]@active"
assert children[0].value.strip() == "true"
assert children[1].name == "{default-namespace}node1[2]@active"
assert children[1].value.strip() == "true"
assert children[2].name == "{default-namespace}node1[2]@size"
assert children[2].value.strip() == "45"
# Test setting nsmap entries:
converter = XMLTagConverter(yaml.safe_load("""
type: XMLTag
match_tag: "{default-namespace}root"
xpath: "//s:node2"
default_namespace: default
nsmap:
s: sub-namespace
"""), "TestXMLTagConverter", converter_registry)
children = converter.create_children(GeneralStore(), tag)
assert len(children) == 1
assert children[0].name == "{default-namespace}node1[2]/{sub-namespace}node2"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment