Ejemplo n.º 1
0
    def test_bind_element_wildcard_param_with_dataclass(self):
        params = {}
        var = XmlVar(name="a", qname=QName("a"))
        qname = QName("b")
        value = AnyElement()
        clazz = make_dataclass("Foo", fields=[])
        foo = clazz()

        ParserUtils.bind_element_wildcard_param(params, var, qname, value)
        self.assertEqual(dict(a=value), params)
        self.assertIsNone(value.qname)

        params.clear()
        ParserUtils.bind_element_wildcard_param(params, var, qname, foo)
        self.assertEqual(dict(a=foo), params)
        self.assertEqual(qname, foo.qname)
Ejemplo n.º 2
0
    def test_bind_element_wildcard_param(self):
        params = {}
        var = XmlVar(name="a", qname=QName("a"))
        qname = QName("b")
        one = AnyElement(qname=qname, text="one")
        two = AnyElement(qname=qname, text="two")
        three = AnyElement(qname=qname, text="three")

        ParserUtils.bind_element_wildcard_param(params, var, qname, "one")
        self.assertEqual(dict(a=one), params)

        ParserUtils.bind_element_wildcard_param(params, var, qname, "two")
        self.assertEqual(dict(a=AnyElement(children=[one, two])), params)

        ParserUtils.bind_element_wildcard_param(params, var, qname, "three")
        self.assertEqual(dict(a=AnyElement(children=[one, two, three])), params)