From 45d61561541b35d9c8757b9cc87974edc73f8649 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Wed, 20 May 2015 21:50:59 +0200 Subject: Issue #9858: Add missing method stubs to _io.RawIOBase. Patch by Laura Rupprecht. --- Lib/test/test_io.py | 4 ++-- Misc/ACKS | 1 + Misc/NEWS | 3 +++ Modules/_io/iobase.c | 16 ++++++++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index f7c6e2d..af7da01 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -722,10 +722,10 @@ class PyIOTest(IOTest): @support.cpython_only class APIMismatchTest(unittest.TestCase): - @unittest.expectedFailure # Test to be fixed by issue9858. def test_RawIOBase_io_in_pyio_match(self): """Test that pyio RawIOBase class has all c RawIOBase methods""" - mismatch = support.detect_api_mismatch(pyio.RawIOBase, io.RawIOBase) + mismatch = support.detect_api_mismatch(pyio.RawIOBase, io.RawIOBase, + ignore=('__weakref__',)) self.assertEqual(mismatch, set(), msg='Python RawIOBase does not have all C RawIOBase methods') def test_RawIOBase_pyio_in_io_match(self): diff --git a/Misc/ACKS b/Misc/ACKS index 71fb0c5..807eeb2 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1212,6 +1212,7 @@ Demur Rumed Audun S. Runde Eran Rundstein Rauli Ruohonen +Laura Rupprecht Jeff Rush Sam Rushing Mark Russell diff --git a/Misc/NEWS b/Misc/NEWS index ab12a65..fe83306 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -52,6 +52,9 @@ Core and Builtins Library ------- +- Issue #9858: Add missing method stubs to _io.RawIOBase. Patch by Laura + Rupprecht. + - Issue #22955: attrgetter, itemgetter and methodcaller objects in the operator module now support pickling. Added readable and evaluable repr for these objects. Based on patch by Josh Rosenberg. diff --git a/Modules/_io/iobase.c b/Modules/_io/iobase.c index 79d716a..025007e 100644 --- a/Modules/_io/iobase.c +++ b/Modules/_io/iobase.c @@ -952,9 +952,25 @@ _io__RawIOBase_readall_impl(PyObject *self) return result; } +static PyObject * +rawiobase_readinto(PyObject *self, PyObject *args) +{ + PyErr_SetNone(PyExc_NotImplementedError); + return NULL; +} + +static PyObject * +rawiobase_write(PyObject *self, PyObject *args) +{ + PyErr_SetNone(PyExc_NotImplementedError); + return NULL; +} + static PyMethodDef rawiobase_methods[] = { _IO__RAWIOBASE_READ_METHODDEF _IO__RAWIOBASE_READALL_METHODDEF + {"readinto", rawiobase_readinto, METH_VARARGS}, + {"write", rawiobase_write, METH_VARARGS}, {NULL, NULL} }; -- cgit v0.12