Bug #1560617: in pyclbr, return full module name not only for classes,
but also for functions.
(backport from rev. 52069)
diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py
index 0731224..079b38c 100644
--- a/Lib/pyclbr.py
+++ b/Lib/pyclbr.py
@@ -172,7 +172,7 @@
# else it's a nested def
else:
# it's a function
- dict[meth_name] = Function(module, meth_name, file, lineno)
+ dict[meth_name] = Function(fullmodule, meth_name, file, lineno)
stack.append((None, thisindent)) # Marker for nested fns
elif token == 'class':
lineno, thisindent = start
diff --git a/Lib/test/test_pyclbr.py b/Lib/test/test_pyclbr.py
index 6d7d5ba..5188bb3 100644
--- a/Lib/test/test_pyclbr.py
+++ b/Lib/test/test_pyclbr.py
@@ -93,6 +93,9 @@
py_item = getattr(module, name)
if isinstance(value, pyclbr.Function):
self.assert_(isinstance(py_item, (FunctionType, BuiltinFunctionType)))
+ if py_item.__module__ != moduleName:
+ continue # skip functions that came from somewhere else
+ self.assertEquals(py_item.__module__, value.module)
else:
self.failUnless(isinstance(py_item, (ClassType, type)))
if py_item.__module__ != moduleName: