diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index aabc1d23dd6..3769a028f81 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -1004,6 +1004,12 @@ class CBufferedReaderTest(BufferedReaderTest, SizeofTest): support.gc_collect() self.assertTrue(wr() is None, wr) + def test_args_error(self): + # Issue #17275 + with self.assertRaisesRegexp(TypeError, "BufferedReader"): + self.tp(io.BytesIO(), 1024, 1024, 1024) + + class PyBufferedReaderTest(BufferedReaderTest): tp = pyio.BufferedReader @@ -1296,6 +1302,11 @@ class CBufferedWriterTest(BufferedWriterTest, SizeofTest): with self.open(support.TESTFN, "rb") as f: self.assertEqual(f.read(), b"123xxx") + def test_args_error(self): + # Issue #17275 + with self.assertRaisesRegexp(TypeError, "BufferedWriter"): + self.tp(io.BytesIO(), 1024, 1024, 1024) + class PyBufferedWriterTest(BufferedWriterTest): tp = pyio.BufferedWriter @@ -1646,6 +1657,7 @@ class BufferedRandomTest(BufferedReaderTest, BufferedWriterTest): f.flush() self.assertEqual(raw.getvalue(), b'1b\n2def\n3\n') + class CBufferedRandomTest(CBufferedReaderTest, CBufferedWriterTest, BufferedRandomTest, SizeofTest): tp = io.BufferedRandom @@ -1664,6 +1676,12 @@ class CBufferedRandomTest(CBufferedReaderTest, CBufferedWriterTest, CBufferedReaderTest.test_garbage_collection(self) CBufferedWriterTest.test_garbage_collection(self) + def test_args_error(self): + # Issue #17275 + with self.assertRaisesRegexp(TypeError, "BufferedRandom"): + self.tp(io.BytesIO(), 1024, 1024, 1024) + + class PyBufferedRandomTest(BufferedRandomTest): tp = pyio.BufferedRandom diff --git a/Misc/ACKS b/Misc/ACKS index 1c453f0c741..aabc36178a0 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -466,6 +466,7 @@ Roger Irwin Atsuo Ishimoto Paul Jackson Ben Jackson +Manuel Jacob David Jacobs Kevin Jacobs Kjetil Jacobsen diff --git a/Misc/NEWS b/Misc/NEWS index a2f397ca9c7..a89a9a4b9ba 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -9,6 +9,9 @@ What's New in Python 2.7.4 Core and Builtins ----------------- +- Issue #17275: Corrected class name in init error messages of the C version of + BufferedWriter and BufferedRandom. + - Issue #7963: Fixed misleading error message that issued when object is called without arguments. diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c index e2d6025d33f..411755c1ed4 100644 --- a/Modules/_io/bufferedio.c +++ b/Modules/_io/bufferedio.c @@ -1683,7 +1683,7 @@ bufferedwriter_init(buffered *self, PyObject *args, PyObject *kwds) self->ok = 0; self->detached = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|nn:BufferedReader", kwlist, + if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|nn:BufferedWriter", kwlist, &raw, &buffer_size, &max_buffer_size)) { return -1; } @@ -2316,7 +2316,7 @@ bufferedrandom_init(buffered *self, PyObject *args, PyObject *kwds) self->ok = 0; self->detached = 0; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|nn:BufferedReader", kwlist, + if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|nn:BufferedRandom", kwlist, &raw, &buffer_size, &max_buffer_size)) { return -1; }