[Python-checkins] cpython: Issue #17401: Output the closefd attribute as boolean.

serhiy.storchaka python-checkins at python.org
Tue Dec 2 22:41:58 CET 2014


https://hg.python.org/cpython/rev/fd80195b920f
changeset: 93706:fd80195b920f
user: Serhiy Storchaka <storchaka at gmail.com>
date: Tue Dec 02 23:39:56 2014 +0200
summary:
 Issue #17401: Output the closefd attribute as boolean.
files:
 Lib/test/test_fileio.py | 18 ++++++++++++++----
 Modules/_io/fileio.c | 8 ++++----
 2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -113,15 +113,25 @@
 
 def testRepr(self):
 self.assertEqual(
- repr(self.f), "<_io.FileIO name=%r mode=%r closefd='%d'>"
- % (self.f.name, self.f.mode, self.f.closefd))
+ repr(self.f), "<_io.FileIO name=%r mode=%r closefd=True>"
+ % (self.f.name, self.f.mode))
 del self.f.name
 self.assertEqual(
- repr(self.f), "<_io.FileIO fd=%r mode=%r closefd='%d'>"
- % (self.f.fileno(), self.f.mode, self.f.closefd))
+ repr(self.f), "<_io.FileIO fd=%r mode=%r closefd=True>"
+ % (self.f.fileno(), self.f.mode))
 self.f.close()
 self.assertEqual(repr(self.f), "<_io.FileIO [closed]>")
 
+ def testReprNoCloseFD(self):
+ fd = os.open(TESTFN, os.O_RDONLY)
+ try:
+ with _FileIO(fd, 'r', closefd=False) as f:
+ self.assertEqual(repr(f),
+ "<_io.FileIO name=%r mode=%r closefd=False>"
+ % (f.name, f.mode))
+ finally:
+ os.close(fd)
+
 def testErrors(self):
 f = self.f
 self.assertTrue(not f.isatty())
diff --git a/Modules/_io/fileio.c b/Modules/_io/fileio.c
--- a/Modules/_io/fileio.c
+++ b/Modules/_io/fileio.c
@@ -1055,13 +1055,13 @@
 else
 return NULL;
 res = PyUnicode_FromFormat(
-	 "<_io.FileIO fd=%d mode='%s' closefd='%d'>",
-	 self->fd, mode_string(self), self->closefd);
+ "<_io.FileIO fd=%d mode='%s' closefd=%s>",
+ self->fd, mode_string(self), self->closefd ? "True" : "False");
 }
 else {
 res = PyUnicode_FromFormat(
-	 "<_io.FileIO name=%R mode='%s' closefd='%d'>",
-	 nameobj, mode_string(self), self->closefd);
+ "<_io.FileIO name=%R mode='%s' closefd=%s>",
+ nameobj, mode_string(self), self->closefd ? "True" : "False");
 Py_DECREF(nameobj);
 }
 return res;
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

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