Patch #486438: Make module argument to testmod optional.
diff --git a/Lib/doctest.py b/Lib/doctest.py
index 5cbdd06..c01606d 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -1044,12 +1044,13 @@
master = None
-def testmod(m, name=None, globs=None, verbose=None, isprivate=None,
+def testmod(m=None, name=None, globs=None, verbose=None, isprivate=None,
report=1):
- """m, name=None, globs=None, verbose=None, isprivate=None, report=1
+ """m=None, name=None, globs=None, verbose=None, isprivate=None, report=1
- Test examples in docstrings in functions and classes reachable from
- module m, starting with m.__doc__. Private names are skipped.
+ Test examples in docstrings in functions and classes reachable
+ from module m (or the current module if m is not supplied), starting
+ with m.__doc__. Private names are skipped.
Also test examples reachable from dict m.__test__ if it exists and is
not None. m.__dict__ maps names to functions, classes and strings;
@@ -1090,6 +1091,13 @@
global master
+ if m is None:
+ import sys
+ # DWA - m will still be None if this wasn't invoked from the command
+ # line, in which case the following TypeError is about as good an error
+ # as we should expect
+ m = sys.modules.get('__main__')
+
if not _ismodule(m):
raise TypeError("testmod: module required; " + `m`)
if name is None: