mirror of https://github.com/python/cpython.git
merge with 3.3
This commit is contained in:
commit
2665f21866
|
@ -15,6 +15,7 @@
|
||||||
from xml.sax.handler import feature_namespaces
|
from xml.sax.handler import feature_namespaces
|
||||||
from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl
|
from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl
|
||||||
from io import BytesIO, StringIO
|
from io import BytesIO, StringIO
|
||||||
|
import codecs
|
||||||
import os.path
|
import os.path
|
||||||
import shutil
|
import shutil
|
||||||
from test import support
|
from test import support
|
||||||
|
@ -538,6 +539,34 @@ def tell(self):
|
||||||
def getvalue(self):
|
def getvalue(self):
|
||||||
return b''.join(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'
|
start = b'<?xml version="1.0" encoding="iso-8859-1"?>\n'
|
||||||
|
|
||||||
|
@ -946,6 +975,8 @@ def test_main():
|
||||||
StringXmlgenTest,
|
StringXmlgenTest,
|
||||||
BytesXmlgenTest,
|
BytesXmlgenTest,
|
||||||
WriterXmlgenTest,
|
WriterXmlgenTest,
|
||||||
|
StreamWriterXmlgenTest,
|
||||||
|
StreamReaderWriterXmlgenTest,
|
||||||
ExpatReaderTest,
|
ExpatReaderTest,
|
||||||
ErrorReportingTest,
|
ErrorReportingTest,
|
||||||
XmlReaderTest)
|
XmlReaderTest)
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
import os, urllib.parse, urllib.request
|
import os, urllib.parse, urllib.request
|
||||||
import io
|
import io
|
||||||
|
import codecs
|
||||||
from . import handler
|
from . import handler
|
||||||
from . import xmlreader
|
from . import xmlreader
|
||||||
|
|
||||||
|
@ -77,6 +78,10 @@ def _gettextwriter(out, encoding):
|
||||||
# use a text writer as is
|
# use a text writer as is
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
if isinstance(out, (codecs.StreamWriter, codecs.StreamReaderWriter)):
|
||||||
|
# use a codecs stream writer as is
|
||||||
|
return out
|
||||||
|
|
||||||
# wrap a binary writer with TextIOWrapper
|
# wrap a binary writer with TextIOWrapper
|
||||||
if isinstance(out, io.RawIOBase):
|
if isinstance(out, io.RawIOBase):
|
||||||
# Keep the original file open when the TextIOWrapper is
|
# Keep the original file open when the TextIOWrapper is
|
||||||
|
|
|
@ -91,6 +91,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #17915: Fix interoperability of xml.sax with file objects returned by
|
||||||
|
codecs.open().
|
||||||
|
|
||||||
- Issue #16601: Restarting iteration over tarfile no more continues from where
|
- Issue #16601: Restarting iteration over tarfile no more continues from where
|
||||||
it left off. Patch by Michael Birtwell.
|
it left off. Patch by Michael Birtwell.
|
||||||
|
|
||||||
|
@ -280,6 +283,12 @@ Tests
|
||||||
- Issue #17692: test_sqlite now works with unittest test discovery.
|
- Issue #17692: test_sqlite now works with unittest test discovery.
|
||||||
Patch by Zachary Ware.
|
Patch by Zachary Ware.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- Issue #15940: Specify effect of locale on time functions.
|
||||||
|
|
||||||
- Issue #6696: add documentation for the Profile objects, and improve
|
- Issue #6696: add documentation for the Profile objects, and improve
|
||||||
profile/cProfile docs. Patch by Tom Pinckney.
|
profile/cProfile docs. Patch by Tom Pinckney.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue