@@ -102,6 +102,26 @@ class XmlModel(Model):
102
102
103
103
assert result .language == u"français"
104
104
105
+ def test_basic_text (self ):
106
+ """Test a XML with unicode."""
107
+ basic_xml = u"""<?xml version="1.0" encoding="utf-8"?>
108
+ <Data language="english">I am text</Data>"""
109
+
110
+ class XmlModel (Model ):
111
+ _attribute_map = {
112
+ 'language' : {'key' : 'language' , 'type' : 'str' , 'xml' :{'name' : 'language' , 'attr' : True }},
113
+ 'content' : {'key' : 'content' , 'type' : 'str' , 'xml' :{'text' : True }},
114
+ }
115
+ _xml_map = {
116
+ 'name' : 'Data'
117
+ }
118
+
119
+ s = Deserializer ({"XmlModel" : XmlModel })
120
+ result = s (XmlModel , basic_xml , "application/xml" )
121
+
122
+ assert result .language == "english"
123
+ assert result .content == "I am text"
124
+
105
125
def test_add_prop (self ):
106
126
"""Test addProp as a dict.
107
127
"""
@@ -753,6 +773,31 @@ class XmlModel(Model):
753
773
754
774
assert_xml_equals (rawxml , basic_xml )
755
775
776
+ def test_basic_text (self ):
777
+ """Test a XML with unicode."""
778
+ basic_xml = ET .fromstring ("""<?xml version="1.0" encoding="utf-8"?>
779
+ <Data language="english">I am text</Data>""" )
780
+
781
+ class XmlModel (Model ):
782
+ _attribute_map = {
783
+ 'language' : {'key' : 'language' , 'type' : 'str' , 'xml' :{'name' : 'language' , 'attr' : True }},
784
+ 'content' : {'key' : 'content' , 'type' : 'str' , 'xml' :{'text' : True }},
785
+ }
786
+ _xml_map = {
787
+ 'name' : 'Data'
788
+ }
789
+
790
+ mymodel = XmlModel (
791
+ language = "english" ,
792
+ content = "I am text"
793
+ )
794
+
795
+ s = Serializer ({"XmlModel" : XmlModel })
796
+ rawxml = s .body (mymodel , 'XmlModel' )
797
+
798
+ assert_xml_equals (rawxml , basic_xml )
799
+
800
+
756
801
def test_direct_array (self ):
757
802
"""Test an ultra basic XML."""
758
803
basic_xml = ET .fromstring ("""<?xml version="1.0"?>
0 commit comments