summaryrefslogtreecommitdiff
path: root/tests/etree13/ElementTree.py
diff options
context:
space:
mode:
authorDasIch <dasdasich@gmail.com>2010-07-11 00:57:08 +0200
committerDasIch <dasdasich@gmail.com>2010-07-11 00:57:08 +0200
commit69de288fb75fc12d161a8441be4fe1fd4477f775 (patch)
treea3b7b7b4494e139d6f8b006747a0795814276f8c /tests/etree13/ElementTree.py
parent5cc8cecdec5eb4181cffa1ca3b5c4081472970dd (diff)
downloadsphinx-69de288fb75fc12d161a8441be4fe1fd4477f775.tar.gz
Revert changes from the last commit which caused problems with 2.x
Diffstat (limited to 'tests/etree13/ElementTree.py')
-rw-r--r--tests/etree13/ElementTree.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/tests/etree13/ElementTree.py b/tests/etree13/ElementTree.py
index e50ad640..d3732504 100644
--- a/tests/etree13/ElementTree.py
+++ b/tests/etree13/ElementTree.py
@@ -1425,6 +1425,13 @@ class XMLParser(object):
err.position = value.lineno, value.offset
raise err
+ def _fixtext(self, text):
+ # convert text string to ascii, if possible
+ try:
+ return text.encode("ascii")
+ except UnicodeError:
+ return text
+
def _fixname(self, key):
# expand qname, and convert name string to ascii, if possible
try:
@@ -1433,28 +1440,30 @@ class XMLParser(object):
name = key
if "}" in name:
name = "{" + name
- self._names[key]
+ self._names[key] = name = self._fixtext(name)
return name
def _start(self, tag, attrib_in):
fixname = self._fixname
+ fixtext = self._fixtext
tag = fixname(tag)
attrib = {}
for key, value in attrib_in.items():
- attrib[fixname(key)] = value
+ attrib[fixname(key)] = fixtext(value)
return self.target.start(tag, attrib)
def _start_list(self, tag, attrib_in):
fixname = self._fixname
+ fixtext = self._fixtext
tag = fixname(tag)
attrib = {}
if attrib_in:
for i in range(0, len(attrib_in), 2):
- attrib[fixname(attrib_in[i])] = attrib_in[i+1]
+ attrib[fixname(attrib_in[i])] = fixtext(attrib_in[i+1])
return self.target.start(tag, attrib)
def _data(self, text):
- return self.target.data(text)
+ return self.target.data(self._fixtext(text))
def _end(self, tag):
return self.target.end(self._fixname(tag))