diff options
author | Andrew M. Kuchling <amk@amk.ca> | 2006-06-09 13:15:57 (GMT) |
---|---|---|
committer | Andrew M. Kuchling <amk@amk.ca> | 2006-06-09 13:15:57 (GMT) |
commit | 91c64a05d2536cbe764cb94c3e24f021d34f7d9a (patch) | |
tree | 9c1a0c3d1ed0bafed826a80ef19c40c8c8ca9cb5 /Lib | |
parent | 7dbb1ff77dd1dc4d0dbaac97d762b7b60355ebea (diff) | |
download | cpython-91c64a05d2536cbe764cb94c3e24f021d34f7d9a.zip cpython-91c64a05d2536cbe764cb94c3e24f021d34f7d9a.tar.gz cpython-91c64a05d2536cbe764cb94c3e24f021d34f7d9a.tar.bz2 |
[Bug #1472827] Make saxutils.XMLGenerator handle \r\n\t in attribute values by escaping them properly. 2.4 bugfix candidate.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_sax.py | 7 | ||||
-rw-r--r-- | Lib/xmlcore/sax/saxutils.py | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/Lib/test/test_sax.py b/Lib/test/test_sax.py index ded81fb..246d214 100644 --- a/Lib/test/test_sax.py +++ b/Lib/test/test_sax.py @@ -175,11 +175,14 @@ def test_xmlgen_attr_escape(): gen.endElement("e") gen.startElement("e", {"a": "'\""}) gen.endElement("e") + gen.startElement("e", {"a": "\n\r\t"}) + gen.endElement("e") gen.endElement("doc") gen.endDocument() - return result.getvalue() == start \ - + "<doc a='\"'><e a=\"'\"></e><e a=\"'"\"></e></doc>" + return result.getvalue() == start + ("<doc a='\"'><e a=\"'\"></e>" + "<e a=\"'"\"></e>" + "<e a=\" 	\"></e></doc>") def test_xmlgen_ignorable(): result = StringIO() diff --git a/Lib/xmlcore/sax/saxutils.py b/Lib/xmlcore/sax/saxutils.py index 582b008..a496519 100644 --- a/Lib/xmlcore/sax/saxutils.py +++ b/Lib/xmlcore/sax/saxutils.py @@ -68,6 +68,8 @@ def quoteattr(data, entities={}): the optional entities parameter. The keys and values must all be strings; each key will be replaced with its corresponding value. """ + entities = entities.copy() + entities.update({'\n': ' ', '\r': ' ', '\t':'	'}) data = escape(data, entities) if '"' in data: if "'" in data: |