Bug #1560617: in pyclbr, return full module name not only for classes,
but also for functions.
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:
diff --git a/Misc/NEWS b/Misc/NEWS
index 0c673f4..d63ffb2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -63,6 +63,9 @@
Library
-------
+- Bug #1560617: in pyclbr, return full module name not only for classes,
+ but also for functions.
+
- Bug #1457823: cgi.(Sv)FormContentDict's constructor now takes
keep_blank_values and strict_parsing keyword arguments.