summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2006-10-29 08:39:27 (GMT)
committerGeorg Brandl <georg@python.org>2006-10-29 08:39:27 (GMT)
commit2a5a3027f23a2c03e20e1c382be08ebb390f3ea7 (patch)
tree3191dbcb19ba9a60ea4e66804457c34f8311016c /Lib/test
parent7f2075a490718c0fbdbddcb806a4319b9c04db9f (diff)
downloadcpython-2a5a3027f23a2c03e20e1c382be08ebb390f3ea7.zip
cpython-2a5a3027f23a2c03e20e1c382be08ebb390f3ea7.tar.gz
cpython-2a5a3027f23a2c03e20e1c382be08ebb390f3ea7.tar.bz2
Fix codecs.EncodedFile which did not use file_encoding in 2.5.0, and
fix all codecs file wrappers to work correctly with the "with" statement (bug #1586513). (backport from rev. 52517)
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_codecs.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 8153979..90340bb 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -1,3 +1,4 @@
+from __future__ import with_statement
from test import test_support
import unittest
import codecs
@@ -910,6 +911,18 @@ class StreamReaderTest(unittest.TestCase):
f = self.reader(self.stream)
self.assertEquals(f.readlines(), [u'\ud55c\n', u'\uae00'])
+class EncodedFileTest(unittest.TestCase):
+
+ def test_basic(self):
+ f = StringIO.StringIO('\xed\x95\x9c\n\xea\xb8\x80')
+ ef = codecs.EncodedFile(f, 'utf-16', 'utf-8')
+ self.assertEquals(ef.read(), '\xff\xfe\\\xd5\n\x00\x00\xae')
+
+ f = StringIO.StringIO()
+ ef = codecs.EncodedFile(f, 'utf-8', 'latin1')
+ ef.write('\xc3\xbc')
+ self.assertEquals(f.getvalue(), '\xfc')
+
class Str2StrTest(unittest.TestCase):
def test_read(self):
@@ -1214,6 +1227,19 @@ class CharmapTest(unittest.TestCase):
(u"", len(allbytes))
)
+class WithStmtTest(unittest.TestCase):
+ def test_encodedfile(self):
+ f = StringIO.StringIO("\xc3\xbc")
+ with codecs.EncodedFile(f, "latin-1", "utf-8") as ef:
+ self.assertEquals(ef.read(), "\xfc")
+
+ def test_streamreaderwriter(self):
+ f = StringIO.StringIO("\xc3\xbc")
+ info = codecs.lookup("utf-8")
+ with codecs.StreamReaderWriter(f, info.streamreader,
+ info.streamwriter, 'strict') as srw:
+ self.assertEquals(srw.read(), u"\xfc")
+
def test_main():
test_support.run_unittest(
@@ -1234,10 +1260,12 @@ def test_main():
IDNACodecTest,
CodecsModuleTest,
StreamReaderTest,
+ EncodedFileTest,
Str2StrTest,
BasicUnicodeTest,
BasicStrTest,
- CharmapTest
+ CharmapTest,
+ WithStmtTest,
)