Issue #3158: Provide a couple of fallbacks for in case a method_descriptor
doesn't have __objclass__.
diff --git a/Lib/doctest.py b/Lib/doctest.py
index fcfcbb0..d212ad6 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -945,7 +945,13 @@
elif inspect.isfunction(object):
return module.__dict__ is object.__globals__
elif inspect.ismethoddescriptor(object):
- return module.__name__ == object.__objclass__.__module__
+ if hasattr(object, '__objclass__'):
+ obj_mod = object.__objclass__.__module__
+ elif hasattr(object, '__module__'):
+ obj_mod = object.__module__
+ else:
+ return True # [XX] no easy way to tell otherwise
+ return module.__name__ == obj_mod
elif inspect.isclass(object):
return module.__name__ == object.__module__
elif hasattr(object, '__module__'):