[Python-checkins] r70133 - python/branches/io-c/Lib/test/test_memoryio.py
benjamin.peterson
python-checkins at python.org
Tue Mar 3 22:23:32 CET 2009
Author: benjamin.peterson
Date: Tue Mar 3 22:23:32 2009
New Revision: 70133
Log:
fix test_newline_property on _pyio.StringIO
Modified:
python/branches/io-c/Lib/test/test_memoryio.py
Modified: python/branches/io-c/Lib/test/test_memoryio.py
==============================================================================
--- python/branches/io-c/Lib/test/test_memoryio.py (original)
+++ python/branches/io-c/Lib/test/test_memoryio.py Tue Mar 3 22:23:32 2009
@@ -417,6 +417,25 @@
# TextIO-specific behaviour.
+ def test_newlines_property(self):
+ memio = self.ioclass(newline=None)
+ # The C StringIO decodes newlines in write() calls, but the Python
+ # implementation only does when reading. This function forces them to
+ # be decoded for testing.
+ def force_decode():
+ memio.seek(0)
+ memio.read()
+ self.assertEqual(memio.newlines, None)
+ memio.write("a\n")
+ force_decode()
+ self.assertEqual(memio.newlines, "\n")
+ memio.write("b\r\n")
+ force_decode()
+ self.assertEqual(memio.newlines, ("\n", "\r\n"))
+ memio.write("c\rd")
+ force_decode()
+ self.assertEqual(memio.newlines, ("\r", "\n", "\r\n"))
+
def test_relative_seek(self):
memio = self.ioclass()
@@ -515,17 +534,6 @@
self.assertEqual(memio.tell(), len(buf) * 2)
self.assertEqual(memio.getvalue(), buf + buf)
- # XXX This test fails with the Python version of io.StringIO
- def test_newlines_property(self):
- memio = self.ioclass(newline=None)
- self.assertEqual(memio.newlines, None)
- memio.write("a\n")
- self.assertEqual(memio.newlines, "\n")
- memio.write("b\r\n")
- self.assertEqual(memio.newlines, ("\n", "\r\n"))
- memio.write("c\rd")
- self.assertEqual(memio.newlines, ("\r", "\n", "\r\n"))
-
def test_main():
tests = [PyBytesIOTest, PyStringIOTest, CBytesIOTest, CStringIOTest]
More information about the Python-checkins
mailing list