|
15 | 15 | from xml.sax.handler import feature_namespaces |
16 | 16 | from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl |
17 | 17 | from io import BytesIO, StringIO |
| 18 | +import codecs |
18 | 19 | import os.path |
19 | 20 | import shutil |
20 | 21 | from test import support |
@@ -538,6 +539,34 @@ def tell(self): |
538 | 539 | def getvalue(self): |
539 | 540 | return b''.join(self) |
540 | 541 |
|
| 542 | +class StreamWriterXmlgenTest(XmlgenTest, unittest.TestCase): |
| 543 | + def ioclass(self): |
| 544 | + raw = BytesIO() |
| 545 | + writer = codecs.getwriter('ascii')(raw, 'xmlcharrefreplace') |
| 546 | + writer.getvalue = raw.getvalue |
| 547 | + return writer |
| 548 | + |
| 549 | + def xml(self, doc, encoding='iso-8859-1'): |
| 550 | + return ('<?xml version="1.0" encoding="%s"?>\n%s' % |
| 551 | + (encoding, doc)).encode('ascii', 'xmlcharrefreplace') |
| 552 | + |
| 553 | +class StreamReaderWriterXmlgenTest(XmlgenTest, unittest.TestCase): |
| 554 | + fname = support.TESTFN + '-codecs' |
| 555 | + |
| 556 | + def ioclass(self): |
| 557 | + writer = codecs.open(self.fname, 'w', encoding='ascii', |
| 558 | + errors='xmlcharrefreplace', buffering=0) |
| 559 | + self.addCleanup(support.unlink, self.fname) |
| 560 | + writer.getvalue = self.getvalue |
| 561 | + return writer |
| 562 | + |
| 563 | + def getvalue(self): |
| 564 | + with open(self.fname, 'rb') as f: |
| 565 | + return f.read() |
| 566 | + |
| 567 | + def xml(self, doc, encoding='iso-8859-1'): |
| 568 | + return ('<?xml version="1.0" encoding="%s"?>\n%s' % |
| 569 | + (encoding, doc)).encode('ascii', 'xmlcharrefreplace') |
541 | 570 |
|
542 | 571 | start = b'<?xml version="1.0" encoding="iso-8859-1"?>\n' |
543 | 572 |
|
@@ -946,6 +975,8 @@ def test_main(): |
946 | 975 | StringXmlgenTest, |
947 | 976 | BytesXmlgenTest, |
948 | 977 | WriterXmlgenTest, |
| 978 | + StreamWriterXmlgenTest, |
| 979 | + StreamReaderWriterXmlgenTest, |
949 | 980 | ExpatReaderTest, |
950 | 981 | ErrorReportingTest, |
951 | 982 | XmlReaderTest) |
|
0 commit comments