diff --git a/Cython/Compiler/AnalysedTreeTransforms.py b/Cython/Compiler/AnalysedTreeTransforms.py index 899925008b984b8a381950cb542522b59c0ba482..933250c6699596c64a8918cb330a2d6509510ff1 100644 --- a/Cython/Compiler/AnalysedTreeTransforms.py +++ b/Cython/Compiler/AnalysedTreeTransforms.py @@ -64,7 +64,11 @@ class AutoTestDictTransform(ScopeTrackingTransform): parent = ModuleRefNode(pos) name = node.entry.name elif self.scope_type in ('pyclass', 'cclass'): - if self.scope_type == 'cclass' and node.name in self.blacklist: + if isinstance(node, CFuncDefNode): + name = node.py_func.name + else: + name = node.name + if self.scope_type == 'cclass' and name in self.blacklist: return node mod = ModuleRefNode(pos) if self.scope_type == 'pyclass': diff --git a/tests/run/autotestdict.pyx b/tests/run/autotestdict.pyx index 2cd8d17e1f852a3875e4e7987750040267e9d052..bc1f7fc0dd7412b71620eecd3da418483f6fa5e9 100644 --- a/tests/run/autotestdict.pyx +++ b/tests/run/autotestdict.pyx @@ -12,6 +12,7 @@ all_tests_run() is executed which does final validation. >>> items.sort() >>> for key, value in items: ... print('%s ; %s' % (key, value)) +MyCdefClass.cpdef_method (line 78) ; >>> add_log("cpdef class method") MyCdefClass.method (line 75) ; >>> add_log("cdef class method") MyClass.method (line 65) ; >>> add_log("class method") doc_without_test (line 47) ; Some docs @@ -22,7 +23,6 @@ myfunc (line 44) ; >>> add_log("def") log = [] - cdef cdeffunc(): """ Please don't include me! @@ -75,6 +75,9 @@ cdef class MyCdefClass: def method(self): """>>> add_log("cdef class method")""" + cpdef cpdef_method(self): + """>>> add_log("cpdef class method")""" + def __cinit__(self): """ Should not be included, as it can't be looked up with getattr