gh-99433: Fix `doctest` failure on `types.MethodWrapperType` (GH-99434)
(cherry picked from commit 79c10b7da84f52999dc483fc62c8e758ad3eff23)
Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
diff --git a/Lib/doctest.py b/Lib/doctest.py
index b2ef2ce..dafad50 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -956,7 +956,8 @@ def _from_module(self, module, object):
return module is inspect.getmodule(object)
elif inspect.isfunction(object):
return module.__dict__ is object.__globals__
- elif inspect.ismethoddescriptor(object):
+ elif (inspect.ismethoddescriptor(object) or
+ inspect.ismethodwrapper(object)):
if hasattr(object, '__objclass__'):
obj_mod = object.__objclass__.__module__
elif hasattr(object, '__module__'):
diff --git a/Lib/test/doctest_lineno.py b/Lib/test/doctest_lineno.py
index be19851..729a68a 100644
--- a/Lib/test/doctest_lineno.py
+++ b/Lib/test/doctest_lineno.py
@@ -48,3 +48,6 @@ def method_with_doctest(self):
>>> MethodWrapper.method_with_doctest.__name__
'method_with_doctest'
"""
+
+# https://github.com/python/cpython/issues/99433
+str_wrapper = object().__str__
diff --git a/Misc/NEWS.d/next/Library/2022-11-13-15-32-19.gh-issue-99433.Ys6y0A.rst b/Misc/NEWS.d/next/Library/2022-11-13-15-32-19.gh-issue-99433.Ys6y0A.rst
new file mode 100644
index 0000000..8e13a9a
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-11-13-15-32-19.gh-issue-99433.Ys6y0A.rst
@@ -0,0 +1 @@
+Fix :mod:`doctest` failure on :class:`types.MethodWrapperType` in modules.