From: Raymond Hettinger Date: Tue, 2 Sep 2003 02:10:09 +0000 (+0000) Subject: SF 798269: bug fix for doctest (sf bug id: 798254 X-Git-Tag: v2.3.1~104 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2dc4637978750a7aef3fdec5a44debc259654463;p=thirdparty%2FPython%2Fcpython.git SF 798269: bug fix for doctest (sf bug id: 798254 (Contributed by Alexander Belopolsky.) Doctest would crash when encountering unbound methods: class A: def f(self): pass class C(A): g = A.f --- diff --git a/Lib/doctest.py b/Lib/doctest.py index dcee8599702b..cff050167f29 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -302,6 +302,7 @@ from types import StringTypes as _StringTypes from inspect import isclass as _isclass from inspect import isfunction as _isfunction +from inspect import ismethod as _ismethod from inspect import ismodule as _ismodule from inspect import classify_class_attrs as _classify_class_attrs @@ -930,11 +931,11 @@ See doctest.testmod docs for the meaning of optionflags. thisname = prefix + k if type(v) in _StringTypes: f, t = self.runstring(v, thisname) - elif _isfunction(v) or _isclass(v): + elif _isfunction(v) or _isclass(v) or _ismethod(v): f, t = self.rundoc(v, thisname) else: raise TypeError("Tester.run__test__: values in " - "dict must be strings, functions " + "dict must be strings, functions, methods, " "or classes; " + `v`) failures = failures + f tries = tries + t