コード例 #1
0
 def test_bind_element_wild_text_when_find_var_returns_none(self):
     meta = mock.Mock(XmlMeta)
     meta.find_var = MagicMock(return_value=None)
     elem = Element("foo")
     params = {}
     ParserUtils.bind_element_wild_text(params, meta, elem)
     self.assertEqual(0, len(params))
コード例 #2
0
    def test_bind_element_wild_text_when_element_has_no_text_and_tail(self):
        var = XmlVar(name="a", qname=QName("a"))
        meta = mock.Mock(XmlMeta)
        meta.find_var = MagicMock(return_value=var)
        elem = Element("foo")
        params = {}

        ParserUtils.bind_element_wild_text(params, meta, elem)
        self.assertEqual(0, len(params))
コード例 #3
0
ファイル: nodes.py プロジェクト: nimish/xsdata
    def parse_element(self, element: Element, objects: List[Any]) -> Tuple:
        params: Dict = dict()
        ParserUtils.bind_element_attrs(params, self.meta, element)
        ParserUtils.bind_element_text(params, self.meta, element)
        ParserUtils.bind_element_children(params, self.meta, self.position,
                                          objects)
        ParserUtils.bind_element_wild_text(params, self.meta, element)

        qname = QName(element.tag)
        obj = self.meta.clazz(**params)

        return qname, obj
コード例 #4
0
ファイル: nodes.py プロジェクト: rmr1154/xsdata
    def parse_element(self, element: Element, objects: List[Any]) -> Tuple:
        """
        Parse the given element attributes/text, find all child objects and
        mixed content and initialize a new dataclass instance.

        :return: A tuple of the object's qualified name and the new object.
        """
        params: Dict = {}
        ParserUtils.bind_element_attrs(params, self.meta, element)
        ParserUtils.bind_element_text(params, self.meta, element)
        ParserUtils.bind_element_children(params, self.meta, self.position,
                                          objects)
        ParserUtils.bind_element_wild_text(params, self.meta, element)

        qname = QName(element.tag)
        obj = self.meta.clazz(**params)

        return qname, obj
コード例 #5
0
    def test_bind_element_wild_text(self):
        var = XmlVar(name="a", qname=QName("a"))
        meta = mock.Mock(XmlMeta)
        meta.find_var = MagicMock(return_value=var)
        elem = Element("foo")
        elem.text = "txt"
        elem.tail = "tail"
        params = {}

        ParserUtils.bind_element_wild_text(params, meta, elem)
        expected = AnyElement(text="txt", tail="tail")
        self.assertEqual(dict(a=expected), params)

        elem.text = "a"
        elem.tail = "b"
        expected = AnyElement(text="a", tail="b")
        ParserUtils.bind_element_wild_text(params, meta, elem)
        self.assertEqual(dict(a=expected), params)
コード例 #6
0
    def test_bind_element_wild_text_when_var_is_list(self):
        var = XmlVar(name="a", qname=QName("a"), default=list)
        meta = mock.Mock(XmlMeta)
        meta.find_var = MagicMock(return_value=var)
        elem = Element("foo")
        elem.text = "txt"
        elem.tail = "tail"
        params = {}

        ParserUtils.bind_element_wild_text(params, meta, elem)
        self.assertEqual(dict(a=["txt", "tail"]), params)

        elem.text = None
        ParserUtils.bind_element_wild_text(params, meta, elem)
        self.assertEqual(dict(a=["txt", "tail", "tail"]), params)

        elem.tail = None
        elem.text = "first"
        ParserUtils.bind_element_wild_text(params, meta, elem)
        self.assertEqual(dict(a=["first", "txt", "tail", "tail"]), params)