diff options
author | Georg Brandl <georg@python.org> | 2009-08-13 08:35:19 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2009-08-13 08:35:19 (GMT) |
commit | 97b28f843718db2e111e8288e4fb7d183ddff58a (patch) | |
tree | 479e550b8906b5d001ad68ac116291edd5f83588 | |
parent | c5605dffdb226e85f415bd6edb441dad714fbc0c (diff) | |
download | cpython-97b28f843718db2e111e8288e4fb7d183ddff58a.zip cpython-97b28f843718db2e111e8288e4fb7d183ddff58a.tar.gz cpython-97b28f843718db2e111e8288e4fb7d183ddff58a.tar.bz2 |
Merged revisions 74316,74335 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k
........
r74316 | alexandre.vassalotti | 2009-08-05 01:19:13 +0200 (Mi, 05 Aug 2009) | 4 lines
Issue 5449: Fix io.BytesIO to not accept arbitrary keywords
Patch contributed by Erick Tryzelaar.
........
r74335 | philip.jenvey | 2009-08-06 22:00:08 +0200 (Do, 06 Aug 2009) | 1 line
typo
........
-rw-r--r-- | Doc/library/codecs.rst | 2 | ||||
-rw-r--r-- | Lib/test/test_memoryio.py | 4 | ||||
-rw-r--r-- | Modules/_io/bytesio.c | 4 |
3 files changed, 8 insertions, 2 deletions
diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index 7218d3a..b8a8ccc 100644 --- a/Doc/library/codecs.rst +++ b/Doc/library/codecs.rst @@ -74,7 +74,7 @@ It defines the following functions: continue without further notice), ``'xmlcharrefreplace'`` (replace with the appropriate XML character reference (for encoding only)), ``'backslashreplace'`` (replace with backslashed escape sequences (for - encoding only)), ``'surrogateescape'`` (replae with surrogate U+DCxx, see + encoding only)), ``'surrogateescape'`` (replace with surrogate U+DCxx, see :pep:`383`) as well as any other error handling name defined via :func:`register_error`. diff --git a/Lib/test/test_memoryio.py b/Lib/test/test_memoryio.py index 0d044e9..187adad 100644 --- a/Lib/test/test_memoryio.py +++ b/Lib/test/test_memoryio.py @@ -416,6 +416,10 @@ class PyBytesIOTest(MemoryTestMixin, MemorySeekTestMixin, unittest.TestCase): 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 PyStringIOTest(MemoryTestMixin, MemorySeekTestMixin, unittest.TestCase): buftype = str diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c index 7675846..cafe4a2 100644 --- a/Modules/_io/bytesio.c +++ b/Modules/_io/bytesio.c @@ -642,9 +642,11 @@ bytesio_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 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. */ |