diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2002-11-22 08:23:09 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2002-11-22 08:23:09 (GMT) |
commit | 4581cfa326cf7d8b9d7888d4c0e96ee88950bcfa (patch) | |
tree | 1dafb4db99d1068c86f3470af1a2a2173315d273 | |
parent | f86e8ef33ec22475a051b783b19ee22c5bd3de72 (diff) | |
download | cpython-4581cfa326cf7d8b9d7888d4c0e96ee88950bcfa.zip cpython-4581cfa326cf7d8b9d7888d4c0e96ee88950bcfa.tar.gz cpython-4581cfa326cf7d8b9d7888d4c0e96ee88950bcfa.tar.bz2 |
Patch #486438: Make module argument to testmod optional.
-rw-r--r-- | Doc/lib/libdoctest.tex | 6 | ||||
-rw-r--r-- | Lib/doctest.py | 16 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 20 insertions, 5 deletions
diff --git a/Doc/lib/libdoctest.tex b/Doc/lib/libdoctest.tex index edd78a4..9a795e9 100644 --- a/Doc/lib/libdoctest.tex +++ b/Doc/lib/libdoctest.tex @@ -152,6 +152,10 @@ if __name__ == "__main__": _test() \end{verbatim} +If you want to test the module as the main module, you don't need to +pass M to \function{testmod}; in this case, it will test the current +module. + Then running the module as a script causes the examples in the docstrings to get executed and verified: @@ -392,7 +396,7 @@ definition of \function{_test()} is \begin{verbatim} def _test(): import doctest, sys - doctest.testmod(sys.modules["__main__"]) + doctest.testmod() \end{verbatim} \end{enumerate} 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 @@ see its docs for details. 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 @@ def testmod(m, name=None, globs=None, verbose=None, isprivate=None, 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: @@ -389,6 +389,9 @@ Extension modules Library ------- +- doctest.testmod can now be called without argument, which means to + test the current module. + - When cancelling a server that implemented threading with a keyboard interrupt, the server would shut down but not terminate (waiting on client threads). A new member variable, daemon_threads, was added to |