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: