Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 255058f

Browse files
committed
don't accept bytes in FileIO.write #7785
1 parent d8aef76 commit 255058f

3 files changed

Lines changed: 7 additions & 2 deletions

File tree

Lib/test/test_fileio.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ def test_none_args(self):
7878
self.assertEqual(self.f.readline(None), b"hi\n")
7979
self.assertEqual(self.f.readlines(None), [b"bye\n", b"abc"])
8080

81+
def test_reject(self):
82+
self.assertRaises(TypeError, self.f.write, "Hello!")
83+
8184
def testRepr(self):
8285
self.assertEquals(repr(self.f), "<_io.FileIO name=%r mode=%r>"
8386
% (self.f.name, self.f.mode))
@@ -168,7 +171,7 @@ def testErrnoOnClose(self, f):
168171

169172
@ClosedFDRaises
170173
def testErrnoOnClosedWrite(self, f):
171-
f.write('a')
174+
f.write(b'a')
172175

173176
@ClosedFDRaises
174177
def testErrnoOnClosedSeek(self, f):

Misc/NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@ C-API
234234
Library
235235
-------
236236

237+
- Don't accept bytes in FileIO.write().
238+
237239
- Removed the functions 'verify' and 'vereq' from Lib/test/support.py.
238240

239241
- Issue #7773: Fix an UnboundLocalError in platform.linux_distribution() when

Modules/_io/fileio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ fileio_write(fileio *self, PyObject *args)
648648
if (!self->writable)
649649
return err_mode("writing");
650650

651-
if (!PyArg_ParseTuple(args, "s*", &pbuf))
651+
if (!PyArg_ParseTuple(args, "y*", &pbuf))
652652
return NULL;
653653

654654
if (_PyVerify_fd(self->fd)) {

0 commit comments

Comments
 (0)