cpython: f7e1e39ccddd (original) (raw)

Mercurial > cpython

changeset 104610:f7e1e39ccddd 3.6

Issue #28214: Improved exception reporting for problematic __set_name__ attributes. [#28214]

Serhiy Storchaka storchaka@gmail.com
date Fri, 21 Oct 2016 17:13:31 +0300
parents 969c8bfe8872
children 7c3ec24f4582 b33c7055220e
files Lib/test/test_subclassinit.py Misc/NEWS Objects/typeobject.c
diffstat 3 files changed, 28 insertions(+), 8 deletions(-)[+] [-] Lib/test/test_subclassinit.py 26 Misc/NEWS 3 Objects/typeobject.c 7

line wrap: on

line diff

--- a/Lib/test/test_subclassinit.py +++ b/Lib/test/test_subclassinit.py @@ -133,20 +133,32 @@ class Test(unittest.TestCase): def test_set_name_error(self): class Descriptor: def set_name(self, owner, name):

+

def test_set_name_wrong(self): class Descriptor: def set_name(self): pass

+

def test_set_name_lookup(self): resolved = []

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,9 @@ What's New in Python 3.6.0 beta 3 Core and Builtins ----------------- +- Issue #28214: Improved exception reporting for problematic set_name

--- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -7022,8 +7022,13 @@ set_names(PyTypeObject *type) if (set_name != NULL) { tmp = PyObject_CallFunctionObjArgs(set_name, type, key, NULL); Py_DECREF(set_name);