Ejemplo n.º 1
0
def test_functional_package():
    parser = etree.XMLParser(remove_blank_text=True)
    el = etree.parse(str(BASE / "package.xml"), parser).getroot()
    original = lmxl_dump(el)
    package = load(Package3, el, "package")
    el = dump(package, "package", NsMap.to_dict(NsMap.opf.value))
    roundtrip = lmxl_dump(el)
    assert original == roundtrip
Ejemplo n.º 2
0
def test_dump_resolve_nsmap_implicit():
    @xml_dataclass
    class Foo:
        __ns__ = None
        __nsmap__ = NSMAP

    foo = Foo()
    el = dump(foo, "foo", None)
    assert el.nsmap == NSMAP
Ejemplo n.º 3
0
def test_dump_resolve_nsmap_passed():
    @xml_dataclass
    class Foo:
        __ns__ = None
        __nsmap__ = None

    foo = Foo()
    el = dump(foo, "foo", NSMAP)
    assert el.nsmap == NSMAP
Ejemplo n.º 4
0
def test_dump_children_union_missing_optional(tp):
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: tp = None

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo/>"
Ejemplo n.º 5
0
def test_dump_children_union_present_optional(tp):
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: tp = None

    foo = Foo(bar=Child1(spam="eggs"))
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == '<foo><bar spam="eggs"/></foo>'
Ejemplo n.º 6
0
def test_dump_children_union_present_required2():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: Union[Child1, Child2]

    foo = Foo(bar=Child2(wibble="wobble"))
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == '<foo><bar wibble="wobble"/></foo>'
Ejemplo n.º 7
0
def test_dump_children_multiple_missing_default():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: List[Child] = field(default_factory=lambda: [Child(), Child()])

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo><bar/><bar/></foo>"
Ejemplo n.º 8
0
def test_dump_children_multiple_present_optional():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: Optional[List[Child]] = None

    foo = Foo(bar=[Child(), Child()])
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo><bar/><bar/></foo>"
Ejemplo n.º 9
0
def test_dump_children_single_present_required():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: Child

    foo = Foo(bar=Child())
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo><bar/></foo>"
Ejemplo n.º 10
0
def test_dump_text_missing_default():
    @xml_dataclass
    class Foo:
        __ns__ = None
        value: str = text(default="bar")

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo>bar</foo>"
Ejemplo n.º 11
0
def test_dump_text_missing_optional():
    @xml_dataclass
    class Foo:
        __ns__ = None
        value: Optional[str] = text(default=None)

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo/>"
Ejemplo n.º 12
0
def test_dump_text_present_optional():
    @xml_dataclass
    class Foo:
        __ns__ = None
        value: Optional[str] = text(default=None)

    foo = Foo(value="bar")
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo>bar</foo>"
Ejemplo n.º 13
0
def test_dump_text_present_required():
    @xml_dataclass
    class Foo:
        __ns__ = None
        value: str = text()

    foo = Foo(value="bar")
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo>bar</foo>"
Ejemplo n.º 14
0
def test_dump_attributes_missing_default():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: str = field(default="baz")

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == '<foo bar="baz"/>'
Ejemplo n.º 15
0
def test_dump_children_union_missing_default():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: Union[Child1, Child2] = Child1(spam="eggs")

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == '<foo><bar spam="eggs"/></foo>'
Ejemplo n.º 16
0
def test_dump_children_single_missing_default():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: Child = Child()

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo><bar/></foo>"
Ejemplo n.º 17
0
def test_dump_children_union_multiple():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: List[Union[Child1, Child2]]

    foo = Foo(bar=[Child1(spam="eggs"), Child2(wibble="wobble")])
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == '<foo><bar spam="eggs"/><bar wibble="wobble"/></foo>'
Ejemplo n.º 18
0
def test_dump_children_multiple_missing_optional():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: Optional[List[Child]] = None

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo/>"
Ejemplo n.º 19
0
def test_dump_attributes_missing_optional():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: Optional[str] = None

    foo = Foo()
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == "<foo/>"
Ejemplo n.º 20
0
def test_dump_attributes_present_optional():
    @xml_dataclass
    class Foo:
        __ns__ = None
        bar: Optional[str] = None

    foo = Foo(bar="baz")
    el = dump(foo, "foo", None)
    xml = etree.tostring(el, encoding="unicode")
    assert xml == '<foo bar="baz"/>'
Ejemplo n.º 21
0
def test_functional_container_no_whitespace(remove_blank_text):  # type: ignore
    nsmap: NsMap = {None: CONTAINER_NS}
    parser = etree.XMLParser(remove_blank_text=remove_blank_text)
    el = etree.parse(str(BASE / "container.xml"), parser).getroot()
    original = lmxl_dump(el)
    container = load(Container, el, "container")
    assert container == Container(
        version="1.0",
        rootfiles=RootFiles(rootfile=[
            RootFile(
                full_path="OEBPS/content.opf",
                media_type="application/oebps-package+xml",
            ),
        ], ),
    )
    el = dump(container, "container", nsmap)
    roundtrip = lmxl_dump(el)
    assert original == roundtrip
Ejemplo n.º 22
0
def str_to_xml(s: str):
    xml_root = MethodDescription(s)
    xml_element = dump(xml_root, 'Method', {})
    return etree.tostring(xml_element, encoding='unicode', pretty_print=True)
Ejemplo n.º 23
0
def test_dump_not_xml_dataclass(inst):
    with pytest.raises(ValueError) as exc_info:
        dump(inst, "foo", NSMAP)

    assert repr(type(inst)) in str(exc_info.value)