[Python-checkins] r69913 - python/branches/io-c/Lib/test/test_io.py
antoine.pitrou
python-checkins at python.org
Mon Feb 23 21:10:30 CET 2009
Author: antoine.pitrou
Date: Mon Feb 23 21:10:30 2009
New Revision: 69913
Log:
Do the cyclic garbage collection tests only on the C version.
The Python version is helpless as it uses __del__.
Modified:
python/branches/io-c/Lib/test/test_io.py
Modified: python/branches/io-c/Lib/test/test_io.py
==============================================================================
--- python/branches/io-c/Lib/test/test_io.py (original)
+++ python/branches/io-c/Lib/test/test_io.py Mon Feb 23 21:10:30 2009
@@ -738,16 +738,6 @@
self.assertRaises(IOError, bufio.seek, 0)
self.assertRaises(IOError, bufio.tell)
- def test_garbage_collection(self):
- # BufferedReader objects are collected
- rawio = self.FileIO(support.TESTFN, "w+b")
- f = self.tp(rawio)
- f.f = f
- wr = weakref.ref(f)
- del f
- gc.collect()
- self.assert_(wr() is None, wr)
-
class CBufferedReaderTest(BufferedReaderTest):
tp = io.BufferedReader
@@ -768,6 +758,17 @@
# checking this is not so easy.
self.assertRaises(IOError, bufio.read, 10)
+ def test_garbage_collection(self):
+ # C BufferedReader objects are collected.
+ # The Python version has __del__, so it ends into gc.garbage instead
+ rawio = self.FileIO(support.TESTFN, "w+b")
+ f = self.tp(rawio)
+ f.f = f
+ wr = weakref.ref(f)
+ del f
+ gc.collect()
+ self.assert_(wr() is None, wr)
+
class PyBufferedReaderTest(BufferedReaderTest):
tp = pyio.BufferedReader
@@ -977,20 +978,6 @@
self.assertRaises(IOError, bufio.tell)
self.assertRaises(IOError, bufio.write, b"abcdef")
- def test_garbage_collection(self):
- # BufferedWriter objects are collected, and collecting them flushes
- # all data to disk.
- rawio = self.FileIO(support.TESTFN, "w+b")
- f = self.tp(rawio)
- f.write(b"123xxx")
- f.x = f
- wr = weakref.ref(f)
- del f
- gc.collect()
- self.assert_(wr() is None, wr)
- with open(support.TESTFN, "rb") as f:
- self.assertEqual(f.read(), b"123xxx")
-
class CBufferedWriterTest(BufferedWriterTest):
tp = io.BufferedWriter
@@ -1004,6 +991,21 @@
self.assertRaises(ValueError, bufio.__init__, rawio, buffer_size=-1)
self.assertRaises(ValueError, bufio.write, b"def")
+ def test_garbage_collection(self):
+ # C BufferedWriter objects are collected, and collecting them flushes
+ # all data to disk.
+ # The Python version has __del__, so it ends into gc.garbage instead
+ rawio = self.FileIO(support.TESTFN, "w+b")
+ f = self.tp(rawio)
+ f.write(b"123xxx")
+ f.x = f
+ wr = weakref.ref(f)
+ del f
+ gc.collect()
+ self.assert_(wr() is None, wr)
+ with open(support.TESTFN, "rb") as f:
+ self.assertEqual(f.read(), b"123xxx")
+
class PyBufferedWriterTest(BufferedWriterTest):
tp = pyio.BufferedWriter
@@ -1152,13 +1154,13 @@
BufferedReaderTest.testMisbehavedRawIO(self)
BufferedWriterTest.testMisbehavedRawIO(self)
+class CBufferedRandomTest(BufferedRandomTest):
+ tp = io.BufferedRandom
+
def test_garbage_collection(self):
BufferedReaderTest.test_garbage_collection(self)
BufferedWriterTest.test_garbage_collection(self)
-class CBufferedRandomTest(BufferedRandomTest):
- tp = io.BufferedRandom
-
class PyBufferedRandomTest(BufferedRandomTest):
tp = pyio.BufferedRandom
@@ -1519,21 +1521,6 @@
self.assert_(s.startswith("Exception IOError: "), s)
self.assert_(s.endswith(" ignored"), s)
- def test_garbage_collection(self):
- # TextIOWrapper objects are collected, and collecting them flushes
- # all data to disk.
- rawio = io.FileIO(support.TESTFN, "wb")
- b = self.BufferedWriter(rawio)
- t = self.TextIOWrapper(b, encoding="ascii")
- t.write("456def")
- t.x = t
- wr = weakref.ref(t)
- del t
- gc.collect()
- self.assert_(wr() is None, wr)
- with open(support.TESTFN, "rb") as f:
- self.assertEqual(f.read(), b"456def")
-
# Systematic tests of the text I/O API
def testBasicIO(self):
@@ -1829,6 +1816,22 @@
self.assertRaises(ValueError, t.__init__, b, newline='xyzzy')
self.assertRaises(ValueError, t.read)
+ def test_garbage_collection(self):
+ # C TextIOWrapper objects are collected, and collecting them flushes
+ # all data to disk.
+ # The Python version has __del__, so it ends in gc.garbage instead.
+ rawio = io.FileIO(support.TESTFN, "wb")
+ b = self.BufferedWriter(rawio)
+ t = self.TextIOWrapper(b, encoding="ascii")
+ t.write("456def")
+ t.x = t
+ wr = weakref.ref(t)
+ del t
+ gc.collect()
+ self.assert_(wr() is None, wr)
+ with open(support.TESTFN, "rb") as f:
+ self.assertEqual(f.read(), b"456def")
+
class PyTextIOWrapperTest(TextIOWrapperTest):
pass
More information about the Python-checkins
mailing list