[Python-checkins] r67058 - in python/branches/release26-maint: Lib/test/test_io.py Modules/_fileio.c

christian.heimes python-checkins at python.org
Fri Oct 31 00:47:46 CET 2008


Author: christian.heimes
Date: Thu Oct 30 22:52:43 2008
New Revision: 67058
Log:
Merged revisions 67052 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk
........
 r67052 | christian.heimes | 2008年10月30日 22:26:15 +0100 (2008年10月30日) | 1 line
 
 Issue #4237: io.FileIO() was raising invalid warnings caused by insufficient initialization of PyFileIOObject struct members.
........
Modified:
 python/branches/release26-maint/ (props changed)
 python/branches/release26-maint/Lib/test/test_io.py
 python/branches/release26-maint/Modules/_fileio.c
Modified: python/branches/release26-maint/Lib/test/test_io.py
==============================================================================
--- python/branches/release26-maint/Lib/test/test_io.py	(original)
+++ python/branches/release26-maint/Lib/test/test_io.py	Thu Oct 30 22:52:43 2008
@@ -1236,6 +1236,13 @@
 else:
 self.assert_(issubclass(obj, io.IOBase))
 
+ def test_fileio_warnings(self):
+ with test_support.check_warnings() as w:
+ self.assertEqual(w.warnings, [])
+ self.assertRaises(TypeError, io.FileIO, [])
+ self.assertEqual(w.warnings, [])
+ self.assertRaises(ValueError, io.FileIO, "/some/invalid/name", "rt")
+ self.assertEqual(w.warnings, [])
 
 def test_main():
 test_support.run_unittest(IOTest, BytesIOTest, StringIOTest,
Modified: python/branches/release26-maint/Modules/_fileio.c
==============================================================================
--- python/branches/release26-maint/Modules/_fileio.c	(original)
+++ python/branches/release26-maint/Modules/_fileio.c	Thu Oct 30 22:52:43 2008
@@ -86,6 +86,10 @@
 	self = (PyFileIOObject *) type->tp_alloc(type, 0);
 	if (self != NULL) {
 		self->fd = -1;
+		self->readable = 0;
+		self->writable = 0;
+		self->seekable = -1;
+		self->closefd = 1;
 		self->weakreflist = NULL;
 	}
 
@@ -179,8 +183,6 @@
 	 }
 	}
 
-	self->readable = self->writable = 0;
-	self->seekable = -1;
 	s = mode;
 	while (*s) {
 		switch (*s++) {


More information about the Python-checkins mailing list

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