Esempio 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
Esempio 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
Esempio 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
Esempio 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/>"
Esempio 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>'
Esempio 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>'
Esempio 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>"
Esempio 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>"
Esempio 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>"
Esempio 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>"
Esempio 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/>"
Esempio 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>"
Esempio 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>"
Esempio 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"/>'
Esempio 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>'
Esempio 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>"
Esempio 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>'
Esempio 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/>"
Esempio 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/>"
Esempio 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"/>'
Esempio 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
Esempio 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)
Esempio 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)