import io
from mammoth.docx.xmlparser import parse_xml, element as xml_element, text as xml_text
from ..testing import assert_equal
def test_can_parse_self_closing_element():
xml = _parse_xml_string(b"
")
assert_equal(xml_element("body", {}, []), xml)
def test_can_parse_attributes_of_tag():
xml = _parse_xml_string(b"")
assert_equal(xml_element("body", {"name": "bob"}, []), xml)
def test_can_parse_text_element():
xml = _parse_xml_string(b"Hello!")
assert_equal(xml_element("body", {}, [xml_text("Hello!")]), xml)
def test_can_parse_text_element_before_new_tag():
xml = _parse_xml_string(b"Hello!
")
assert_equal(xml_element("body", {}, [xml_text("Hello!"), xml_element("br", {}, [])]), xml)
def test_can_parse_element_with_children():
xml = _parse_xml_string(b"")
assert_equal([xml_element("a", {}, []), xml_element("b", {}, [])], xml.children)
def test_unmapped_namespaces_uris_are_included_in_braces_as_prefix():
xml = _parse_xml_string(b'')
assert_equal("{word}body", xml.name)
def test_mapped_namespaces_uris_are_translated_using_namespace_map():
xml = _parse_xml_string(b'', [("x", "word")])
assert_equal("x:body", xml.name)
def test_namespace_of_attributes_is_mapped_to_prefix():
xml = _parse_xml_string(b'', [("x", "word")])
assert_equal("Hello!", xml.attributes["x:val"])
def test_whitespace_between_xml_declaration_and_root_tag_is_ignored():
xml = _parse_xml_string(b'\n