[Python-checkins] cpython (2.7): Issue #17765: weakref.ref() no longer silently ignores keyword arguments.
serhiy.storchaka
python-checkins at python.org
Sat May 7 08:44:38 EDT 2016
https://hg.python.org/cpython/rev/60de9c6188cc
changeset: 101252:60de9c6188cc
branch: 2.7
parent: 101250:e3af25d70976
user: Serhiy Storchaka <storchaka at gmail.com>
date: Sat May 07 15:41:09 2016 +0300
summary:
Issue #17765: weakref.ref() no longer silently ignores keyword arguments.
Patch by Georg Brandl.
files:
Lib/test/test_weakref.py | 4 ++++
Misc/NEWS | 3 +++
Objects/weakrefobject.c | 4 +++-
3 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py
--- a/Lib/test/test_weakref.py
+++ b/Lib/test/test_weakref.py
@@ -116,6 +116,10 @@
ref1 = weakref.ref(c, callback)
del c
+ def test_constructor_kwargs(self):
+ c = C()
+ self.assertRaises(TypeError, weakref.ref, c, callback=None)
+
def test_proxy_ref(self):
o = C()
o.bar = 1
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -77,6 +77,9 @@
Library
-------
+- Issue #17765: weakref.ref() no longer silently ignores keyword arguments.
+ Patch by Georg Brandl.
+
- Issue #26873: xmlrpclib now raises ResponseError on unsupported type tags
instead of silently return incorrect result.
diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c
--- a/Objects/weakrefobject.c
+++ b/Objects/weakrefobject.c
@@ -271,7 +271,6 @@
parse_weakref_init_args(char *funcname, PyObject *args, PyObject *kwargs,
PyObject **obp, PyObject **callbackp)
{
- /* XXX Should check that kwargs == NULL or is empty. */
return PyArg_UnpackTuple(args, funcname, 1, 2, obp, callbackp);
}
@@ -334,6 +333,9 @@
{
PyObject *tmp;
+ if (!_PyArg_NoKeywords("ref()", kwargs))
+ return -1;
+
if (parse_weakref_init_args("__init__", args, kwargs, &tmp, &tmp))
return 0;
else
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list