[Python-checkins] r54164 - in python/trunk: Doc/lib/libdoctest.tex Lib/doctest.py Misc/NEWS

georg.brandl python-checkins at python.org
Tue Mar 6 14:37:50 CET 2007


Author: georg.brandl
Date: Tue Mar 6 14:37:45 2007
New Revision: 54164
Modified:
 python/trunk/Doc/lib/libdoctest.tex
 python/trunk/Lib/doctest.py
 python/trunk/Misc/NEWS
Log:
Patch #1663234: you can now run doctest on test files and modules
using "python -m doctest [-v] filename ...".
Modified: python/trunk/Doc/lib/libdoctest.tex
==============================================================================
--- python/trunk/Doc/lib/libdoctest.tex	(original)
+++ python/trunk/Doc/lib/libdoctest.tex	Tue Mar 6 14:37:45 2007
@@ -201,6 +201,19 @@
 \code{sys.argv} is not examined by \function{testmod()} (so passing
 \programopt{-v} or not has no effect).
 
+Since Python 2.6, there is also a command line shortcut for running
+\function{testmod()}. You can instruct the Python interpreter to run
+the doctest module directly from the standard library and pass the module
+name(s) on the command line:
+
+\begin{verbatim}
+python -m doctest -v example.py
+\end{verbatim}
+
+This will import \file{example.py} as a standalone module and run
+\function{testmod()} on it. Note that this may not work correctly if the
+file is part of a package and imports other submodules from that package.
+
 For more information on \function{testmod()}, see
 section~\ref{doctest-basic-api}.
 
@@ -267,6 +280,18 @@
 set with the \programopt{-v} command-line switch or with the optional
 keyword argument \var{verbose}.
 
+Since Python 2.6, there is also a command line shortcut for running
+\function{testfile()}. You can instruct the Python interpreter to run
+the doctest module directly from the standard library and pass the file
+name(s) on the command line:
+
+\begin{verbatim}
+python -m doctest -v example.txt
+\end{verbatim}
+
+Because the file name does not end with \file{.py}, \module{doctest} infers
+that it must be run with \function{testfile()}, not \function{testmod()}.
+
 For more information on \function{testfile()}, see
 section~\ref{doctest-basic-api}.
 
Modified: python/trunk/Lib/doctest.py
==============================================================================
--- python/trunk/Lib/doctest.py	(original)
+++ python/trunk/Lib/doctest.py	Tue Mar 6 14:37:45 2007
@@ -2630,8 +2630,23 @@
 }
 
 def _test():
- r = unittest.TextTestRunner()
- r.run(DocTestSuite())
+ testfiles = [arg for arg in sys.argv[1:] if arg and arg[0] != '-']
+ if len(testfiles) > 0:
+ for filename in testfiles:
+ if filename.endswith(".py"):
+ # This is a module -- insert its dir into sys.path and try to
+ # import it. If it is part of a package, that possibly won't work
+ # because of package imports.
+ dirname, filename = os.path.split(filename)
+ sys.path.insert(0, dirname)
+ m = __import__(filename[:-3])
+ del sys.path[0]
+ testmod(m)
+ else:
+ testfile(filename, module_relative=False)
+ else:
+ r = unittest.TextTestRunner()
+ r.run(DocTestSuite())
 
 if __name__ == "__main__":
 _test()
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Tue Mar 6 14:37:45 2007
@@ -141,6 +141,9 @@
 Library
 -------
 
+- Patch #1663234: you can now run doctest on test files and modules
+ using "python -m doctest [-v] filename ...".
+
 - Patch #1121142: Implement ZipFile.open.
 
 - Taught setup.py how to locate Berkeley DB on Macs using MacPorts.


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /