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)
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)