File tree Expand file tree Collapse file tree 3 files changed +44
-2
lines changed
Expand file tree Collapse file tree 3 files changed +44
-2
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,8 @@ def is_string(obj):
2424 """
2525 return isinstance (obj , str )
2626
27+ Unicode = str
28+
2729# ===========================================================================
2830# Python 2 versions
2931# ===========================================================================
@@ -37,3 +39,5 @@ def is_string(obj):
3739 Return True if *obj* is a string, False otherwise.
3840 """
3941 return isinstance (obj , basestring )
42+
43+ Unicode = unicode
Original file line number Diff line number Diff line change 1111
1212import re
1313
14+ from ..compat import Unicode
15+
1416
1517def serialize_for_reading (element ):
1618 """
@@ -21,7 +23,7 @@ def serialize_for_reading(element):
2123 return XmlString (xml )
2224
2325
24- class XmlString (str ):
26+ class XmlString (Unicode ):
2527 """
2628 Provides string comparison override suitable for serialized XML that is
2729 useful for tests.
Original file line number Diff line number Diff line change 88
99import pytest
1010
11- from docx .oxml .xmlchemy import XmlString
11+ from docx .compat import Unicode
12+ from docx .oxml import parse_xml
13+ from docx .oxml .xmlchemy import serialize_for_reading , XmlString
14+
15+
16+ class DescribeSerializeForReading (object ):
17+
18+ def it_pretty_prints_an_lxml_element (self , pretty_fixture ):
19+ element , expected_xml_text = pretty_fixture
20+ xml_text = serialize_for_reading (element )
21+ assert xml_text == expected_xml_text
22+
23+ def it_returns_unicode_text (self , type_fixture ):
24+ element = type_fixture
25+ xml_text = serialize_for_reading (element )
26+ assert isinstance (xml_text , Unicode )
27+
28+ # fixtures ---------------------------------------------
29+
30+ @pytest .fixture
31+ def pretty_fixture (self , element ):
32+ expected_xml_text = (
33+ '<foø>\n '
34+ ' <bår>text</bår>\n '
35+ '</foø>\n '
36+ )
37+ return element , expected_xml_text
38+
39+ @pytest .fixture
40+ def type_fixture (self , element ):
41+ return element
42+
43+ # fixture components -----------------------------------
44+
45+ @pytest .fixture
46+ def element (self ):
47+ return parse_xml ('<foø><bår>text</bår></foø>' )
1248
1349
1450class DescribeXmlString (object ):
You can’t perform that action at this time.
0 commit comments