[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

AltStyle によって変換されたページ (->オリジナル) /