[Python-checkins] r75655 - in python/trunk: Lib/test/test_memoryio.py Modules/_io/bytesio.c

antoine.pitrou python-checkins at python.org
Sat Oct 24 14:28:22 CEST 2009


Author: antoine.pitrou
Date: Sat Oct 24 14:28:22 2009
New Revision: 75655

Log:
Manual py3k backport: [svn r74316] Issue #5449: Fix io.BytesIO to not accept arbitrary keywords



Modified:
   python/trunk/Lib/test/test_memoryio.py
   python/trunk/Modules/_io/bytesio.c

Modified: python/trunk/Lib/test/test_memoryio.py
==============================================================================
--- python/trunk/Lib/test/test_memoryio.py	(original)
+++ python/trunk/Lib/test/test_memoryio.py	Sat Oct 24 14:28:22 2009
@@ -467,6 +467,11 @@
         self.assertEqual(memio.write(a), 10)
         self.assertEqual(memio.getvalue(), buf)
 
+    def test_issue5449(self):
+        buf = self.buftype("1234567890")
+        self.ioclass(initial_bytes=buf)
+        self.assertRaises(TypeError, self.ioclass, buf, foo=None)
+
 
 class TextIOTestMixin:
 

Modified: python/trunk/Modules/_io/bytesio.c
==============================================================================
--- python/trunk/Modules/_io/bytesio.c	(original)
+++ python/trunk/Modules/_io/bytesio.c	Sat Oct 24 14:28:22 2009
@@ -766,9 +766,11 @@
 static int
 bytesio_init(bytesio *self, PyObject *args, PyObject *kwds)
 {
+    char *kwlist[] = {"initial_bytes", NULL};
     PyObject *initvalue = NULL;
 
-    if (!PyArg_ParseTuple(args, "|O:BytesIO", &initvalue))
+    if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:BytesIO", kwlist,
+                                     &initvalue))
         return -1;
 
     /* In case, __init__ is called multiple times. */


More information about the Python-checkins mailing list