summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-10-02 21:01:22 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-10-02 21:01:22 (GMT)
commit0481d24dd51bf3a346b432e1c065ed027bccb5c4 (patch)
tree8a8c5f1e563fdb5581cad3e08e7e28274da420ea
parentfe1fd0e6e9c1f253a6006ca52328d52146d89865 (diff)
downloadcpython-0481d24dd51bf3a346b432e1c065ed027bccb5c4.zip
cpython-0481d24dd51bf3a346b432e1c065ed027bccb5c4.tar.gz
cpython-0481d24dd51bf3a346b432e1c065ed027bccb5c4.tar.bz2
CVS patch [#466628] Doc changes for doctest patch (#466616), from
Tim Hochberg. Doctest no longer searches imported objects.
-rw-r--r--Doc/lib/libdoctest.tex27
1 files changed, 2 insertions, 25 deletions
diff --git a/Doc/lib/libdoctest.tex b/Doc/lib/libdoctest.tex
index 9b99b9d..edd78a4 100644
--- a/Doc/lib/libdoctest.tex
+++ b/Doc/lib/libdoctest.tex
@@ -186,7 +186,7 @@ attempted.
See \file{docstring.py} for all the details. They're unsurprising: the
module docstring, and all function, class and method docstrings are
searched, with the exception of docstrings attached to objects with private
-names.
+names. Objects imported into the module are not searched.
In addition, if \code{M.__test__} exists and "is true", it must be a
dict, and each entry maps a (string) name to a function object, class
@@ -211,9 +211,7 @@ By default, each time testmod finds a docstring to test, it uses a
doesn't change the module's real globals, and so that one test in
\module{M} can't leave behind crumbs that accidentally allow another test
to work. This means examples can freely use any names defined at top-level
-in \module{M}, and names defined earlier in the docstring being run. It
-also means that sloppy imports (see below) can cause examples in external
-docstrings to use globals inappropriate for them.
+in \module{M}, and names defined earlier in the docstring being run.
You can force use of your own dict as the execution context by passing
\code{globs=your_dict} to \function{testmod()} instead. Presumably this
@@ -320,27 +318,6 @@ that triggered it.
\begin{enumerate}
-\item Sloppy imports can cause trouble; e.g., if you do
-
-\begin{verbatim}
-from XYZ import XYZclass
-\end{verbatim}
-
-then \class{XYZclass} is a name in \code{M.__dict__} too, and doctest
-has no way to know that \class{XYZclass} wasn't \emph{defined} in
-\module{M}. So it may try to execute the examples in
-\class{XYZclass}'s docstring, and those in turn may require a
-different set of globals to work correctly. I prefer to do
-``\code{import *}''-friendly imports, a la
-
-\begin{verbatim}
-from XYZ import XYZclass as _XYZclass
-\end{verbatim}
-
-and then the leading underscore makes \class{_XYZclass} a private name so
-testmod skips it by default. Other approaches are described in
-\file{doctest.py}.
-
\item \module{doctest} is serious about requiring exact matches in expected
output. If even a single character doesn't match, the test fails. This
will probably surprise you a few times, as you learn exactly what Python