]> granicus.if.org Git - python/commitdiff
SF 798269: bug fix for doctest (sf bug id: 798254
authorRaymond Hettinger <python@rcn.com>
Tue, 2 Sep 2003 02:09:05 +0000 (02:09 +0000)
committerRaymond Hettinger <python@rcn.com>
Tue, 2 Sep 2003 02:09:05 +0000 (02:09 +0000)
(Contributed by Alexander Belopolsky.)

Doctest would crash when encountering unbound methods:
  class A:
    def f(self): pass

  class C(A):
    g = A.f

Lib/doctest.py

index dcee8599702b24301c8e457ce70fa8237d6011de..cff050167f298d07cfe61019aa29153a87a4caad 100644 (file)
@@ -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