diff options
author | Georg Brandl <georg@python.org> | 2013-05-12 11:52:22 +0200 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2013-05-12 11:52:22 +0200 |
commit | 4042e5b2c7e6663694881126d93b8ba99e647c5e (patch) | |
tree | 4cae4ae8866484c28c3f69349c11134cbe843613 /Lib/test/test_sax.py | |
parent | 5e1c51325d5a0370f528f6359a3b144c20894dfa (diff) | |
parent | ab6a69347e27266a3ad1e2350e682448ecbaee9a (diff) | |
download | cpython-4042e5b2c7e6663694881126d93b8ba99e647c5e.tar.gz |
merge with 3.2
Diffstat (limited to 'Lib/test/test_sax.py')
-rw-r--r-- | Lib/test/test_sax.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_sax.py b/Lib/test/test_sax.py index e235a0b002..0261c6a73e 100644 --- a/Lib/test/test_sax.py +++ b/Lib/test/test_sax.py @@ -15,6 +15,7 @@ from xml.sax.expatreader import create_parser from xml.sax.handler import feature_namespaces from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl from io import BytesIO, StringIO +import codecs import os.path import shutil from test import support @@ -538,6 +539,34 @@ class WriterXmlgenTest(BytesXmlgenTest): def getvalue(self): return b''.join(self) +class StreamWriterXmlgenTest(XmlgenTest, unittest.TestCase): + def ioclass(self): + raw = BytesIO() + writer = codecs.getwriter('ascii')(raw, 'xmlcharrefreplace') + writer.getvalue = raw.getvalue + return writer + + def xml(self, doc, encoding='iso-8859-1'): + return ('<?xml version="1.0" encoding="%s"?>\n%s' % + (encoding, doc)).encode('ascii', 'xmlcharrefreplace') + +class StreamReaderWriterXmlgenTest(XmlgenTest, unittest.TestCase): + fname = support.TESTFN + '-codecs' + + def ioclass(self): + writer = codecs.open(self.fname, 'w', encoding='ascii', + errors='xmlcharrefreplace', buffering=0) + self.addCleanup(support.unlink, self.fname) + writer.getvalue = self.getvalue + return writer + + def getvalue(self): + with open(self.fname, 'rb') as f: + return f.read() + + def xml(self, doc, encoding='iso-8859-1'): + return ('<?xml version="1.0" encoding="%s"?>\n%s' % + (encoding, doc)).encode('ascii', 'xmlcharrefreplace') start = b'<?xml version="1.0" encoding="iso-8859-1"?>\n' @@ -946,6 +975,8 @@ def test_main(): StringXmlgenTest, BytesXmlgenTest, WriterXmlgenTest, + StreamWriterXmlgenTest, + StreamReaderWriterXmlgenTest, ExpatReaderTest, ErrorReportingTest, XmlReaderTest) |